Build1 distinct publisher3 min readUpdated
A developer let Claude Code write most of a collaborative sheet music editor and kept the definition of "correct" for himself. The transferable artifact is the round-trip corpus.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
A developer publishing as tan-z-tan has released ScoreTail, a browser-based collaborative sheet music editor built largely solo, with Claude Code producing roughly 90 percent of the implementation and Antigravity about 10 percent [1][6]. The part of that worth copying is not the tool choice: by the author's own account, what made the project viable was a corpus of about 250 real-world scores wired into a round-trip test [7][8].
The scope explains why. MusicXML covers pitch, duration, voices, staves, backup and forward, divisions, ties, slurs, ornaments, tuplets, lyrics, chord symbols, dynamics and repeat structures, and the author's estimate for implementing all of it alone the traditional way is a multi-year project [4][5]. The bet made late last year was to let the model do the typing while the human defined correctness through architecture decisions and test cases [6].
The harness is cheap for a specific reason: nobody has to write down the right answer. Each score is imported, exported, and imported again, and any structural drift between the first and second import is treated as a bug [9]. The pass condition references only the input file, so none of the roughly 250 scores needs a hand-authored expected output [12]. That is what let the corpus be assembled from things that already exist: Bach, Beethoven, Chopin, Brahms, Debussy, plus the LilyPond regression test suite [8]. Import, export, re-import means three crossings of the format boundary per file, on the order of 750 per full run [11]. The loop is then mechanical: the model writes code, the round-trip suite catches regressions, the model fixes them, repeat, with humans reserved for the judgment calls [10].
It matters where the bugs actually live. The author names backup and forward as the hardest part of MusicXML: the format is a flat, sequential XML stream, but a measure is not sequential, because it carries simultaneous voices and, in a piano part, two staves sharing one measure, so voice A's notes are written and then a backup element rewinds the internal time cursor before voice B starts from the same beat [13]. Any reader or writer therefore has to keep its own timeline position independent of document order, and the author says the combinations of backup with multi-voice and multi-staff are where most real-world parser bugs sit [14]. A generated unit test would not have found those; a Chopin file does.
The limits of the approach are visible in the rest of the design. Yjs gives structural convergence across clients but has no model of a musically valid tree, which the author treats as two separate problems [20], and the fallback is an auto-undo that rolls back the last operation when an export produces an invalid document [21]. The editing rule is correctness over flexibility: if beat 4 of a 4/4 measure holds a quarter note, changing it to a half note has to overflow into the next measure, auto-insert a tie, or be rejected outright [15], because the target user is not assumed to know notation [17]. Those are acceptance decisions too, and they are the ones the round-trip suite cannot make.
Two things to watch. Rendering goes through Verovio, a C++ engraving engine compiled to WebAssembly, and full-score re-rendering on every edit blocks the main thread on large scores; the source cuts off mid-sentence on the fix [22][23]. And the post reports no pass rate, runtime, or failure count for the 250-file suite [24], which is the number that would tell you whether the harness is an acceptance gate or a progress bar.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
ScoreTail is a browser-based score editor built mostly alone by its author with a lot of AI-assisted development.
MusicXML is described as a huge spec covering pitch, duration, voices, staves, backup/forward, divisions, ties, slurs, ornaments, tuplets, lyrics, chord symbols, dynamics and repeat structures.
The author states that implementing all of MusicXML solo, the traditional way, is a multi-year project.
Late last year the author decided to let AI write most of the implementation (Claude Code about 90 percent of the code, Antigravity about 10 percent) while he focused on defining what "correct" means through architecture decisions and test cases rather than typing every line.
The author states that the thing that made this workable was not the AI but the test harness.
The author collected around 250 real-world scores, including Bach, Beethoven, Chopin, Brahms and Debussy, plus the LilyPond regression test corpus.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single self-authored account, method described but results undisclosed
All claims come from one first-person dev.to post by the project's author. The methodology is specific and checkable in principle — corpus composition, round-trip pass criterion, backup/forward semantics, Yjs mapping, Verovio via WebAssembly — but no suite outcome is reported, no repository, demo link, or code artifact is present in the supplied cluster, and no second publisher corroborates the AI-authorship split or corpus size.
No adoption facts in supplied sources
The cluster contains no release, deployment, download, user-count, pricing, or third-party-usage disclosure for ScoreTail, and no evidence that the round-trip harness pattern has been picked up elsewhere. Dependencies named (Yjs, Verovio, LilyPond corpus) are consumed by this project but the post reports no adoption metrics of its own or theirs.
Mildly overstated: strong methodology framing, no reported results
The post's central boast is deliberately modest — the author credits the harness over the model and names real unsolved friction (main-thread render blocking, convergence versus validity). That pulls the gap toward zero. It stays positive because the load-bearing claim that a ~250-score round-trip suite substituted for a multi-year solo implementation is presented without a single pass rate, failure count, or coverage measure against the MusicXML spec, and the 'nothing like it existed' market claim is an unverified author assertion.
Author writing about his own product
The single source is a first-person post by ScoreTail's builder on a developer publishing platform, describing his own tool's differentiation against named incumbents. That is a clear promotional and reputational interest in the build narrative and the market-gap claim, with no editorial or third-party check in the cluster. It is not maximal because the post volunteers unflattering detail — unresolved rendering performance, shelved from-scratch renderer, validity problems Yjs does not solve.
Method credible, magnitude unverifiable
Confidence is moderate-low: the engineering substance (MusicXML backup/forward, CRDT convergence versus musical validity, Verovio WebAssembly rendering) is internally coherent and consistent with how those technologies work, so the transferable pattern is likely real. But the cluster is one self-interested source with zero adoption evidence and no reported suite results, so any quantitative reading of how well the harness worked is unsupported.
build
Make the spec fail the build: a solo dev's log of docs-versus-code drift1 distinct publisher
build
AI-written code fails the same four ways, and every gate you own reports green1 distinct publisher
build
NVIDIA put a number on agent skills: 300+ verified, two harnesses, baselines under 50/1001 distinct publisher
product
A 2x LLM bill is not a bug report: token spend is an observability problem1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 15, 2026