@riddledc/riddle-proof-packs 0.4.0 → 0.4.2

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.
Files changed (21) hide show
  1. package/dist/index.cjs +46 -16
  2. package/dist/index.js +46 -16
  3. package/package.json +1 -1
  4. package/packs/neon-step-sequencer/README.md +4 -3
  5. package/packs/neon-step-sequencer/case-study/findings.md +17 -6
  6. package/packs/neon-step-sequencer/case-study/ratchet-card.md +3 -2
  7. package/packs/neon-step-sequencer/case-study/ratchet-log.md +68 -12
  8. package/packs/neon-step-sequencer/case-study/reusable-lessons.md +1 -1
  9. package/packs/neon-step-sequencer/examples/README.md +4 -2
  10. package/packs/neon-step-sequencer/examples/run-004-ratchet-loop-mix-level-search/profile-result.json +3260 -131
  11. package/packs/neon-step-sequencer/examples/run-004-ratchet-loop-mix-level-search/summary.md +18 -8
  12. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/artifact-manifest.json +32 -0
  13. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/console.json +4 -0
  14. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/dom-summary.json +40 -0
  15. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/profile-result.json +2917 -0
  16. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/proof.json +2917 -0
  17. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/screenshots/neon-step-sequencer-explore-songs-and-mixes-desktop-neon-explore-songs-and-mixes.png +0 -0
  18. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/screenshots/neon-step-sequencer-explore-songs-and-mixes-desktop.png +0 -0
  19. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/summary.md +52 -0
  20. package/packs/neon-step-sequencer/profiles/explore-songs-and-mixes.json +33 -7
  21. package/packs/neon-step-sequencer/profiles/ratchet-loop-mix-level-search.json +13 -9
@@ -0,0 +1,52 @@
1
+ # Run 005 - Explore songs and mixes
2
+
3
+ - Profile: `neon-step-sequencer-explore-songs-and-mixes`
4
+ - Runner: `local-playwright`
5
+ - Evidence-role pattern: `current_target`
6
+ - Status: `passed`
7
+ - Captured at: `2026-05-24T05:09:43.225Z`
8
+ - Target URL: `http://127.0.0.1:5173/games/drum-sequencer?song=monkberry-moon-delight-tab&mix=profile&view=trainer&instrument=bass`
9
+
10
+ ## Claim
11
+
12
+ The current Neon target can run a bounded song/part exploration sweep, produce a confidence map, and keep every sampled proof window inside objective audio and app-health guardrails.
13
+
14
+ ## Evidence
15
+
16
+ - `4` songs sampled.
17
+ - `8` song/part entries sampled.
18
+ - `8` entries passed.
19
+ - `0` prioritized findings.
20
+ - The profile asserted `__neonProof.exploration.ok === true`, so future product findings fail the proof instead of hiding inside a captured return value.
21
+ - Audio sources were prepared with drums `samples`, bass/chord/guitar `hybrid`, and vocal `voice_oohs`.
22
+ - Console fatal count was `0`.
23
+ - Horizontal overflow was `0 px`.
24
+
25
+ Final sampled peak/headroom receipts:
26
+
27
+ | Song | Part | Window | Peak | Headroom |
28
+ | --- | ---: | --- | ---: | ---: |
29
+ | Yakety Yak (Dark) | 0 | `part-1` | `0.9589` | `0.36 dB` |
30
+ | Yakety Yak (Dark) | 1 | `part-2` | `0.9756` | `0.21 dB` |
31
+ | Monkberry Moon Delight (Sheet) | 0 | `part-1` | `0.9734` | `0.23 dB` |
32
+ | Monkberry Moon Delight (Sheet) | 1 | `part-2` | `0.9550` | `0.40 dB` |
33
+ | Monkberry Moon Delight (Full OMR) | 0 | `part-1` | `0.8345` | `1.57 dB` |
34
+ | Monkberry Moon Delight (Full OMR) | 1 | `part-2` | `0.8327` | `1.59 dB` |
35
+ | Monkberry Moon Delight (Tab) | 0 | `introBed` | `0.8328` | `1.59 dB` |
36
+ | Monkberry Moon Delight (Tab) | 0 | `vocalEntry` | `0.8330` | `1.59 dB` |
37
+ | Monkberry Moon Delight (Tab) | 1 | `introBed` | `0.8338` | `1.58 dB` |
38
+ | Monkberry Moon Delight (Tab) | 1 | `vocalEntry` | `0.8423` | `1.49 dB` |
39
+
40
+ ## What This Does Not Prove
41
+
42
+ - It does not prove subjective mix taste.
43
+ - It does not prove every song or every part; this run was bounded to the first four songs and first two parts per song.
44
+ - It does not prove production CDN audio asset availability; this was captured against a local dev server.
45
+ - It does not compare a reference deployment to a candidate deployment.
46
+
47
+ ## Artifacts
48
+
49
+ - `proof.json`
50
+ - `console.json`
51
+ - `dom-summary.json`
52
+ - `profile-result.json`
@@ -18,11 +18,14 @@
18
18
  "label": "install-neon-exploration-proof",
19
19
  "timeout_ms": 10000,
20
20
  "store_return_to": "__neonProof.install",
21
- "script": "window.__neonProofApi=()=>window.__NEON_MIX_PROOF__||window.__RIDDLE_SEQUENCER_PROOF__; window.__neonProofWindows=async()=>{const api=window.__neonProofApi(); if(api?.renderProofWindows) return await api.renderProofWindows({}); if(api?.renderOfflineMetrics) return {ok:true,proofKind:'offline-audio-window-set',windows:[await api.renderOfflineMetrics({bars:1,seed:'neon-explore-fallback',monitorProfile:'smallSpeaker'})]}; return {ok:false,error:'missing renderProofWindows'};}; const api=window.__neonProofApi(); const state=api?.getState?.()||api?.getSummary?.()||{}; return {available:Boolean(api),selectedSong:state.selectedSong||null};",
21
+ "script": "window.__neonProofApi=()=>window.__NEON_MIX_PROOF__||window.__RIDDLE_SEQUENCER_PROOF__; const api=window.__neonProofApi(); const state=api?.getState?.()||api?.getSummary?.()||{}; return {available:Boolean(api),hasExplorationSweep:typeof api?.runExplorationSweep==='function',selectedSong:state.selectedSong||null};",
22
22
  "return_summary_fields": [
23
23
  {
24
24
  "path": "available"
25
25
  },
26
+ {
27
+ "path": "hasExplorationSweep"
28
+ },
26
29
  {
27
30
  "path": "selectedSong"
28
31
  }
@@ -36,8 +39,17 @@
36
39
  },
37
40
  {
38
41
  "type": "window_call",
39
- "label": "render-proof-windows",
40
- "path": "__neonProofWindows",
42
+ "label": "run-exploration-sweep",
43
+ "path": "__NEON_MIX_PROOF__.runExplorationSweep",
44
+ "args": [
45
+ {
46
+ "maxSongs": 4,
47
+ "maxPartsPerSong": 2,
48
+ "maxWindowsPerPart": 2,
49
+ "monitorProfile": "smallSpeaker",
50
+ "loadAllSources": true
51
+ }
52
+ ],
41
53
  "store_return_to": "__neonProof.exploration",
42
54
  "capture_return": true,
43
55
  "timeout_ms": 180000,
@@ -45,14 +57,26 @@
45
57
  {
46
58
  "path": "ok"
47
59
  },
60
+ {
61
+ "path": "status"
62
+ },
48
63
  {
49
64
  "path": "proofKind"
50
65
  },
51
66
  {
52
- "path": "windows.length"
67
+ "path": "entryCount"
68
+ },
69
+ {
70
+ "path": "findingCount"
53
71
  }
54
72
  ]
55
73
  },
74
+ {
75
+ "type": "assert_window_value",
76
+ "path": "__neonProof.exploration.proofKind",
77
+ "expected_value": "neon-exploration-sweep",
78
+ "timeout_ms": 10000
79
+ },
56
80
  {
57
81
  "type": "assert_window_value",
58
82
  "path": "__neonProof.exploration.ok",
@@ -96,10 +120,12 @@
96
120
  "pack_id": "neon_step_sequencer",
97
121
  "pack_public_name": "Neon Step Sequencer Pack",
98
122
  "evidence_role_pattern": "current_target",
99
- "purpose": "Exploration sweep over the app-provided proof windows for prioritizing the next weakest song/mix combination.",
123
+ "purpose": "Bounded exploration sweep over Neon songs, parts, mix profiles, and proof windows for prioritizing the next weakest review target.",
100
124
  "required_receipts": [
101
- "proof-window set returns ok",
102
- "window receipts are captured",
125
+ "exploration sweep contract is available",
126
+ "song/part entries are captured",
127
+ "all sampled entries pass objective guardrails",
128
+ "prioritized findings are captured",
103
129
  "browser health is clean",
104
130
  "screenshot is captured"
105
131
  ],
@@ -36,7 +36,7 @@
36
36
  },
37
37
  {
38
38
  "type": "window_call",
39
- "label": "run-ratchet-loop-mix-level-search",
39
+ "label": "test-claim-candidates-mix-level-search",
40
40
  "path": "__NEON_MIX_PROOF__.runRatchetLoop",
41
41
  "args": [
42
42
  {
@@ -50,8 +50,7 @@
50
50
  "maxIterations": 6,
51
51
  "monitorProfile": "smallSpeaker",
52
52
  "restore": true,
53
- "applyBest": false,
54
- "minImprovement": 0.1
53
+ "applyBest": false
55
54
  }
56
55
  ],
57
56
  "store_return_to": "__neonMixProof.ratchetLoop",
@@ -68,10 +67,13 @@
68
67
  "path": "strategy"
69
68
  },
70
69
  {
71
- "path": "improvement"
70
+ "path": "best.claimVerdict.status"
72
71
  },
73
72
  {
74
- "path": "best.candidate.track"
73
+ "path": "best.claimCandidate.action.track"
74
+ },
75
+ {
76
+ "path": "supportedClaimCandidateCount"
75
77
  }
76
78
  ]
77
79
  },
@@ -121,16 +123,18 @@
121
123
  "pack_id": "neon_step_sequencer",
122
124
  "pack_public_name": "Neon Step Sequencer Pack",
123
125
  "evidence_role_pattern": "interaction_snapshots",
124
- "purpose": "Run a bounded automated ratchet loop using the Neon mix-level-search strategy.",
126
+ "purpose": "Run a bounded loop that tests Neon mix-level change-claim candidates using the mix-level-search strategy.",
125
127
  "required_receipts": [
126
128
  "ratchet loop returns ok",
127
129
  "baseline proof-window summary is captured",
128
- "candidate attempts are captured",
129
- "best candidate or human-review status is captured"
130
+ "claim candidates are captured",
131
+ "each candidate records claim receipts",
132
+ "best supported claim candidate or human-review status is captured",
133
+ "state restoration receipt is captured"
130
134
  ],
131
135
  "does_not_prove": [
132
136
  "subjective mix quality",
133
- "that the best objective candidate should be kept",
137
+ "that a supported claim candidate should be kept",
134
138
  "all possible mix edits"
135
139
  ]
136
140
  }