@riddledc/riddle-proof-packs 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/dist/index.cjs +1035 -6
- package/dist/index.js +1035 -6
- package/package.json +2 -2
- package/packs/audio-mix/README.md +30 -0
- package/packs/audio-mix/authoring-guide.md +35 -0
- package/packs/audio-mix/human-review-rubric.md +31 -0
- package/packs/audio-mix/metrics-schema.json +30 -0
- package/packs/audio-mix/profile.template.json +130 -0
- package/packs/audio-mix/ratchet-method.md +26 -0
- package/packs/neon-step-sequencer/README.md +41 -0
- package/packs/neon-step-sequencer/case-study/findings.md +102 -0
- package/packs/neon-step-sequencer/case-study/ratchet-card.md +39 -0
- package/packs/neon-step-sequencer/case-study/ratchet-log.md +203 -0
- package/packs/neon-step-sequencer/case-study/reusable-lessons.md +27 -0
- package/packs/neon-step-sequencer/examples/README.md +20 -0
- package/packs/neon-step-sequencer/examples/run-001-fast-mix-health/profile-result.json +5010 -0
- package/packs/neon-step-sequencer/examples/run-001-fast-mix-health/summary.md +37 -0
- package/packs/neon-step-sequencer/examples/run-002-mix-change/profile-result.json +6816 -0
- package/packs/neon-step-sequencer/examples/run-002-mix-change/summary.md +37 -0
- package/packs/neon-step-sequencer/examples/run-003-full-matrix/profile-result.json +18490 -0
- package/packs/neon-step-sequencer/examples/run-003-full-matrix/summary.md +33 -0
- package/packs/neon-step-sequencer/profile.template.json +75 -0
- package/packs/neon-step-sequencer/profiles/explore-songs-and-mixes.json +112 -0
- package/packs/neon-step-sequencer/profiles/fast-mix-health.json +181 -0
- package/packs/neon-step-sequencer/profiles/full-mix-health-matrix.json +154 -0
- package/packs/neon-step-sequencer/profiles/mix-change-before-after.json +202 -0
- package/packs/neon-step-sequencer/profiles/mobile-trainer-layout.json +109 -0
- package/packs/neon-step-sequencer/profiles/playback-sync.json +126 -0
- package/packs/neon-step-sequencer/profiles/source-readiness.json +114 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Neon Ratchet Lab
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Use Riddle Proof to improve confidence in Neon Step Sequencer mix behavior by building a reusable proof pack and iterating only user-controlled proof layers where possible.
|
|
6
|
+
|
|
7
|
+
## Rule
|
|
8
|
+
|
|
9
|
+
Each run records:
|
|
10
|
+
|
|
11
|
+
- claim
|
|
12
|
+
- profile used
|
|
13
|
+
- evidence captured
|
|
14
|
+
- status
|
|
15
|
+
- failure classification
|
|
16
|
+
- smallest layer changed
|
|
17
|
+
- next sharper question
|
|
18
|
+
|
|
19
|
+
## Classification vocabulary
|
|
20
|
+
|
|
21
|
+
- `product_regression`: app behavior is wrong.
|
|
22
|
+
- `proof_insufficient`: the proof cannot support the claim yet.
|
|
23
|
+
- `profile_calibration`: the profile targets the wrong state, timing, fixture, or threshold.
|
|
24
|
+
- `app_contract_gap`: the app needs a small diagnostic surface.
|
|
25
|
+
- `runtime_environment_blocked`: browser, preview, or runtime failed before useful evidence.
|
|
26
|
+
- `needs_human_review`: evidence is real but subjective judgment remains.
|
|
27
|
+
|
|
28
|
+
## Run 001 - Fast mix-health baseline
|
|
29
|
+
|
|
30
|
+
Claim:
|
|
31
|
+
|
|
32
|
+
Neon exposes enough proof state to connect UI mixer settings to rendered metrics.
|
|
33
|
+
|
|
34
|
+
Profile:
|
|
35
|
+
|
|
36
|
+
`profiles/fast-mix-health.json`
|
|
37
|
+
|
|
38
|
+
Evidence to capture:
|
|
39
|
+
|
|
40
|
+
- Neon route and selected song
|
|
41
|
+
- proof contract availability
|
|
42
|
+
- readable mixer state
|
|
43
|
+
- source-preparation receipt
|
|
44
|
+
- offline render metrics
|
|
45
|
+
- screenshot and console health
|
|
46
|
+
|
|
47
|
+
Observed status:
|
|
48
|
+
|
|
49
|
+
Passed on May 24, 2026 with `local-playwright`.
|
|
50
|
+
|
|
51
|
+
Observed evidence:
|
|
52
|
+
|
|
53
|
+
- route observed: `/games/drum-sequencer`
|
|
54
|
+
- proof contract available: `true`
|
|
55
|
+
- source-preparation receipt: drums `samples`; bass, chord, and guitar `hybrid`; vocal `voice_oohs`
|
|
56
|
+
- all source loaded flags true
|
|
57
|
+
- mix RMS `0.1234`
|
|
58
|
+
- mix peak `0.8321`
|
|
59
|
+
- headroom `1.6 dB`
|
|
60
|
+
- clipping `false`
|
|
61
|
+
- active instrument count `6`
|
|
62
|
+
- console fatal count `0`
|
|
63
|
+
- horizontal overflow `0 px`
|
|
64
|
+
|
|
65
|
+
Failure classification:
|
|
66
|
+
|
|
67
|
+
None. This was a passing `current_target` audit.
|
|
68
|
+
|
|
69
|
+
Smallest layer changed:
|
|
70
|
+
|
|
71
|
+
LilArcade added the minimal Neon proof contract and local profile JSON. Riddle Proof core did not need a change.
|
|
72
|
+
|
|
73
|
+
Next sharper question:
|
|
74
|
+
|
|
75
|
+
If the baseline can read/render enough state, does a visible mix edit produce measurable audio movement without clipping?
|
|
76
|
+
|
|
77
|
+
## Run 002 - Mix change interaction snapshots
|
|
78
|
+
|
|
79
|
+
Claim:
|
|
80
|
+
|
|
81
|
+
A visible bass-focus mix change produces measurable rendered audio movement without clipping.
|
|
82
|
+
|
|
83
|
+
Profile:
|
|
84
|
+
|
|
85
|
+
`profiles/mix-change-before-after.json`
|
|
86
|
+
|
|
87
|
+
Evidence to capture:
|
|
88
|
+
|
|
89
|
+
- pre-action offline render metrics
|
|
90
|
+
- mixer level change receipt
|
|
91
|
+
- post-action offline render metrics
|
|
92
|
+
- metric movement classification
|
|
93
|
+
- post-action screenshot and console health
|
|
94
|
+
|
|
95
|
+
Possible outcomes:
|
|
96
|
+
|
|
97
|
+
- `product_regression`: visible control does not affect render path.
|
|
98
|
+
- `proof_insufficient`: render metrics are too coarse or missing.
|
|
99
|
+
- `profile_calibration`: chosen bars do not contain enough bass energy.
|
|
100
|
+
- `needs_human_review`: objective movement exists but taste is unresolved.
|
|
101
|
+
|
|
102
|
+
Observed status:
|
|
103
|
+
|
|
104
|
+
Passed on May 24, 2026 with `local-playwright`.
|
|
105
|
+
|
|
106
|
+
Observed evidence:
|
|
107
|
+
|
|
108
|
+
- bass level changed from `0.62` to `1.35`
|
|
109
|
+
- bass RMS moved from `0.0507` to `0.1071`
|
|
110
|
+
- mix RMS moved from `0.073` to `0.1264`
|
|
111
|
+
- post-action mix peak was `0.6555`
|
|
112
|
+
- clipping after edit was `false`
|
|
113
|
+
- console fatal count `0`
|
|
114
|
+
- horizontal overflow `0 px`
|
|
115
|
+
|
|
116
|
+
Failure classification:
|
|
117
|
+
|
|
118
|
+
None. This was a passing `interaction_snapshots` proof.
|
|
119
|
+
|
|
120
|
+
Smallest layer changed:
|
|
121
|
+
|
|
122
|
+
The profile asked a sharper question using the existing app proof contract. No Riddle Proof core change was required.
|
|
123
|
+
|
|
124
|
+
Next sharper question:
|
|
125
|
+
|
|
126
|
+
Does the same pack hold across device-shaped viewports and trainer layout constraints?
|
|
127
|
+
|
|
128
|
+
## Run 003 - Viewport matrix
|
|
129
|
+
|
|
130
|
+
Claim:
|
|
131
|
+
|
|
132
|
+
The mix-health proof holds across desktop, phone, iPad Mini, and iPad while preserving route, contract, metrics, and layout receipts.
|
|
133
|
+
|
|
134
|
+
Profile:
|
|
135
|
+
|
|
136
|
+
`profiles/full-mix-health-matrix.json`
|
|
137
|
+
|
|
138
|
+
Evidence to capture:
|
|
139
|
+
|
|
140
|
+
- per-viewport route and contract receipts
|
|
141
|
+
- per-viewport screenshot
|
|
142
|
+
- offline metric receipt
|
|
143
|
+
- mobile overflow check
|
|
144
|
+
- console health
|
|
145
|
+
|
|
146
|
+
Possible outcomes:
|
|
147
|
+
|
|
148
|
+
- `product_regression`: layout/control state is broken.
|
|
149
|
+
- `profile_calibration`: profile selector or viewport threshold is too brittle.
|
|
150
|
+
- `app_contract_gap`: responsive state is invisible to proof.
|
|
151
|
+
- `runtime_environment_blocked`: preview/browser cannot sustain the matrix.
|
|
152
|
+
|
|
153
|
+
Observed status:
|
|
154
|
+
|
|
155
|
+
Passed on May 24, 2026 with `local-playwright`.
|
|
156
|
+
|
|
157
|
+
Observed evidence:
|
|
158
|
+
|
|
159
|
+
- desktop, phone, iPad Mini, and iPad all observed `/games/drum-sequencer`
|
|
160
|
+
- all viewports reported `0 px` horizontal overflow
|
|
161
|
+
- all viewports rendered offline metrics with RMS `0.0732`, peak `0.5402`, and no clipping
|
|
162
|
+
- console fatal count `0`
|
|
163
|
+
|
|
164
|
+
Failure classification:
|
|
165
|
+
|
|
166
|
+
None. This was a passing `current_target` matrix audit.
|
|
167
|
+
|
|
168
|
+
Smallest layer changed:
|
|
169
|
+
|
|
170
|
+
Only the profile widened the evidence scope to multiple viewports.
|
|
171
|
+
|
|
172
|
+
Next sharper question:
|
|
173
|
+
|
|
174
|
+
Can the pack explore song/mix combinations and produce a prioritized confidence map?
|
|
175
|
+
|
|
176
|
+
## Run 004 - Exploration sweep
|
|
177
|
+
|
|
178
|
+
Claim:
|
|
179
|
+
|
|
180
|
+
The pack can identify which proof windows or song/mix combinations need attention.
|
|
181
|
+
|
|
182
|
+
Profile:
|
|
183
|
+
|
|
184
|
+
`profiles/explore-songs-and-mixes.json`
|
|
185
|
+
|
|
186
|
+
Evidence to capture:
|
|
187
|
+
|
|
188
|
+
- app-provided proof windows
|
|
189
|
+
- window-level render verdicts
|
|
190
|
+
- failing or review-needed windows
|
|
191
|
+
- compact summary for human handoff
|
|
192
|
+
|
|
193
|
+
Expected outcome:
|
|
194
|
+
|
|
195
|
+
Either a clean confidence map or a prioritized finding list.
|
|
196
|
+
|
|
197
|
+
## Project note
|
|
198
|
+
|
|
199
|
+
The ratchet is not a pass. The ratchet is the next sharper question.
|
|
200
|
+
|
|
201
|
+
## Runner note
|
|
202
|
+
|
|
203
|
+
The local Playwright runner wrote complete passing artifacts for Runs 002 and 003, then the wrapper process lingered after artifact write and had to be stopped. That is an ergonomics issue for runner shutdown behavior, not evidence of a Neon product failure. The example `profile-result.json` files are complete and passed.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Reusable Lessons
|
|
2
|
+
|
|
3
|
+
## Atomic proof first
|
|
4
|
+
|
|
5
|
+
Start with the smallest claim that can produce useful evidence. For Neon, that is not "the mix sounds good"; it is route, contract, source readiness, render metrics, no silence, and no clipping.
|
|
6
|
+
|
|
7
|
+
## Failure is product input
|
|
8
|
+
|
|
9
|
+
A failing run should become a clearer classification, not a vague "Riddle caught a bug" headline. Use `product_regression`, `proof_insufficient`, `profile_calibration`, `app_contract_gap`, `runtime_environment_blocked`, and `needs_human_review`.
|
|
10
|
+
|
|
11
|
+
## App contracts beat scraping
|
|
12
|
+
|
|
13
|
+
Complex audio state is easier to prove when the app exposes a small redacted proof contract. Scraping visible controls is still useful, but rendered metric agreement needs intentional app state.
|
|
14
|
+
|
|
15
|
+
## Keep metrics compact
|
|
16
|
+
|
|
17
|
+
Large metrics belong in artifacts. The summary should answer:
|
|
18
|
+
|
|
19
|
+
- did the render complete?
|
|
20
|
+
- did the mix clip?
|
|
21
|
+
- was it silent?
|
|
22
|
+
- did the intended metric move?
|
|
23
|
+
- what should a human review next?
|
|
24
|
+
|
|
25
|
+
## Core changes are last
|
|
26
|
+
|
|
27
|
+
Most ratchet steps should change profile JSON, pack docs, app proof contracts, or app fixtures. Riddle Proof core changes are justified only when the missing primitive applies beyond Neon.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Neon Step Sequencer example runs
|
|
2
|
+
|
|
3
|
+
These examples are local Playwright runner outputs captured against LilArcade Neon Step Sequencer on May 24, 2026. They are included to show how this pack records atomic proof claims with explicit evidence-role patterns.
|
|
4
|
+
|
|
5
|
+
The raw `profile-result.json` files are real runner outputs. They intentionally keep enough evidence to audit the verdict, but the summaries are the preferred place to start.
|
|
6
|
+
|
|
7
|
+
## Runs
|
|
8
|
+
|
|
9
|
+
| Run | Evidence-role pattern | Status | Claim |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| `run-001-fast-mix-health` | `current_target` | passed | The current Neon target exposes a proof contract, source receipts, and a bounded offline mix-health render. |
|
|
12
|
+
| `run-002-mix-change` | `interaction_snapshots` | passed | A bass-level edit changes rendered bass and mix metrics without clipping. |
|
|
13
|
+
| `run-003-full-matrix` | `current_target` | passed | The mix-health proof holds across desktop, phone, iPad Mini, and iPad viewports. |
|
|
14
|
+
|
|
15
|
+
## What these examples do not prove
|
|
16
|
+
|
|
17
|
+
- They do not prove subjective mix taste.
|
|
18
|
+
- They do not prove every song, section, or mix preset.
|
|
19
|
+
- They do not prove production CDN asset availability; these were local dev-server runs.
|
|
20
|
+
- They do not prove a reference/candidate release delta. The mix-change run uses pre-action/post-action snapshots inside one proof run, not a separate baseline deployment.
|