Good Catch Diary
Neon Ratchet Lab

A step sequencer became a proof ratchet.

Neon Step Sequencer tested the new Riddle Proof architecture by building reusable audio-mix packs, a tiny app contract, and live proof runs against a running browser target. The result is not just a pass. It is a sharper way to ask the next proof question.

3Live local Playwright proof runs with complete passing artifacts.
2Evidence-role patterns used: current_target and interaction_snapshots.
4Viewport shapes in the matrix: desktop, phone, iPad Mini, and iPad.
0Core Riddle Proof changes required for the successful evidence path.

The atomic claim.

audio mix evidence

Claim: when the user applies a mix change in Neon Step Sequencer, the visible mixer state, app proof contract, and rendered offline audio metrics should agree.

Target

/games/drum-sequencer with the Monkberry Moon Delight tab fixture, profile mix, trainer view, and bass focus.

Setup/actions

Capture the Neon proof contract, prepare audio sources, render offline metrics, optionally edit a mixer level, and capture screenshots.

Verdict boundary

Objective guardrails can pass. Subjective mix taste remains a human-review claim with a separate rubric.

The live runs.

real artifacts
Neon Step Sequencer desktop proof screenshot for fast mix health
Run 001current_targetpassed

Fast mix-health baseline

  • route matched /games/drum-sequencer
  • proof contract available
  • all source readiness flags true
  • mix RMS 0.1234, peak 0.8321
  • clipping false, fatal console count 0
Neon Step Sequencer desktop proof screenshot after bass mix change
Run 002interaction_snapshotspassed

Mix-change interaction snapshots

  • bass level changed from 0.62 to 1.35
  • bass RMS moved from 0.0507 to 0.1071
  • mix RMS moved from 0.073 to 0.1264
  • post-action peak 0.6555
  • clipping false
Neon Step Sequencer phone proof screenshot for full matrix run
Run 003current_targetpassed

Full viewport matrix

  • desktop, phone, iPad Mini, and iPad passed
  • all routes matched /games/drum-sequencer
  • all viewports reported 0px horizontal overflow
  • all metrics rendered with RMS 0.0732 and peak 0.5402
  • clipping false, fatal console count 0

What got built

  • @riddledc/riddle-proof-packs/audio-mix reusable audio-mix authoring material.
  • @riddledc/riddle-proof-packs/neon-step-sequencer app-specific profiles and examples.
  • src/proof/neonProofContract.ts in LilArcade for a small, live app proof contract.
  • Local profiles for fast health, full matrix, and mix-change interaction snapshots.
{
  "evidence_role_pattern": "interaction_snapshots",
  "claim": "Bass-level edit moves rendered audio metrics",
  "pre_action": { "bass_rms": 0.0507, "mix_rms": 0.073 },
  "post_action": { "bass_rms": 0.1071, "mix_rms": 0.1264 },
  "verdict": "passed",
  "does_not_prove": ["subjective mix quality"]
}

What we learned.

ratchet value

The app contract was the leverage point

The useful boundary was a tiny Neon proof contract exposing selected song, mixer state, source state, playback state, source preparation, offline metrics, and diagnostic receipts.

No core change was needed for the pass path

The first three runs improved confidence by editing profile JSON, pack docs, and the app proof contract. Riddle Proof core stayed stable.

The runner exposed an ergonomics issue

Runs 002 and 003 wrote complete passing artifacts, then the wrapper process lingered after artifact write. That is a runner shutdown follow-up, not a Neon product failure.