@riddledc/riddle-proof-packs 0.3.0 → 0.4.1

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.
@@ -0,0 +1,49 @@
1
+ # Run 004 - Ratchet Loop Mix-Level Search
2
+
3
+ - profile: `lilarcade-neon-ratchet-loop-mix-level-search`
4
+ - evidence_role_pattern: `interaction_snapshots`
5
+ - status: `passed`
6
+ - captured_at: `2026-05-24T04:21:47.248Z`
7
+ - runner: `local-playwright`
8
+ - target: `http://127.0.0.1:5173/games/drum-sequencer?song=monkberry-moon-delight-tab&mix=profile&view=trainer&instrument=bass`
9
+
10
+ ## Atomic Claim
11
+
12
+ The current Neon target can run a bounded ratchet loop that proposes mix-level change-claim candidates, applies each candidate action, captures proof-window evidence, records receipt-level verdicts, selects a supported candidate for review, and restores the app state after the run.
13
+
14
+ ## Evidence
15
+
16
+ | Field | Value |
17
+ | --- | --- |
18
+ | strategy | `mix-level-search` |
19
+ | focus tracks | `bass`, `chord`, `guitar`, `rhythmSynth` |
20
+ | candidates tested | `6` |
21
+ | baseline candidate-ranking metric | `28.8336` |
22
+ | best candidate-ranking metric | `27.07095` |
23
+ | ranking metric delta | `1.7627` |
24
+ | best supported claim candidate | `chord -0.10` to level `0.28` |
25
+ | loop status | `claim_candidate_supported` |
26
+ | restored after run | `true` |
27
+
28
+ Console fatal count was `0`.
29
+
30
+ Claim receipts for the supported candidate:
31
+
32
+ - mixer edit accepted
33
+ - contract mixer level reflected the requested action
34
+ - rendered target track metrics changed
35
+ - required instruments remained active
36
+ - no clipping
37
+ - no low-level proof window
38
+
39
+ ## Verdict
40
+
41
+ Passed. The bounded loop produced a reviewable claim-candidate packet without permanently applying the candidate. The ranking metric is a review-order hint only; the claim verdict is based on receipts and guardrails.
42
+
43
+ ## What This Does Not Prove
44
+
45
+ - subjective mix quality
46
+ - that the candidate should be kept without listening review
47
+ - that the ranking metric is a universal proof metric
48
+ - that all possible mix edits were searched
49
+ - that the ratchet loop primitive is mix-specific
@@ -0,0 +1,141 @@
1
+ {
2
+ "version": "riddle-proof.profile.v1",
3
+ "name": "neon-step-sequencer-ratchet-loop-mix-level-search",
4
+ "target": {
5
+ "route": "/games/drum-sequencer?song=monkberry-moon-delight-tab&mix=profile&view=trainer&instrument=bass",
6
+ "viewports": [
7
+ {
8
+ "name": "desktop",
9
+ "width": 1440,
10
+ "height": 1000
11
+ }
12
+ ],
13
+ "timeout_sec": 360,
14
+ "wait_for_selector": ".drum-sequencer h1",
15
+ "setup_actions": [
16
+ {
17
+ "type": "window_eval",
18
+ "label": "capture-neon-contract",
19
+ "timeout_ms": 10000,
20
+ "store_return_to": "__neonMixProof.contract",
21
+ "script": "const contract=window.__NEON_MIX_PROOF__; const diagnostic=contract?.captureDiagnostic?.(); window.__neonMixProof={...(window.__neonMixProof||{}),contract:{available:Boolean(contract),diagnostic}}; return window.__neonMixProof.contract;",
22
+ "return_summary_fields": [
23
+ {
24
+ "path": "available"
25
+ },
26
+ {
27
+ "path": "diagnostic.selectedSong.selectedSong"
28
+ }
29
+ ]
30
+ },
31
+ {
32
+ "type": "assert_window_value",
33
+ "path": "__neonMixProof.contract.available",
34
+ "expected_value": true,
35
+ "timeout_ms": 10000
36
+ },
37
+ {
38
+ "type": "window_call",
39
+ "label": "test-claim-candidates-mix-level-search",
40
+ "path": "__NEON_MIX_PROOF__.runRatchetLoop",
41
+ "args": [
42
+ {
43
+ "strategy": "mix-level-search",
44
+ "focusTracks": [
45
+ "bass",
46
+ "chord",
47
+ "guitar",
48
+ "rhythmSynth"
49
+ ],
50
+ "maxIterations": 6,
51
+ "monitorProfile": "smallSpeaker",
52
+ "restore": true,
53
+ "applyBest": false
54
+ }
55
+ ],
56
+ "store_return_to": "__neonMixProof.ratchetLoop",
57
+ "capture_return": true,
58
+ "timeout_ms": 240000,
59
+ "return_summary_fields": [
60
+ {
61
+ "path": "ok"
62
+ },
63
+ {
64
+ "path": "status"
65
+ },
66
+ {
67
+ "path": "strategy"
68
+ },
69
+ {
70
+ "path": "best.claimVerdict.status"
71
+ },
72
+ {
73
+ "path": "best.claimCandidate.action.track"
74
+ },
75
+ {
76
+ "path": "supportedClaimCandidateCount"
77
+ }
78
+ ]
79
+ },
80
+ {
81
+ "type": "assert_window_value",
82
+ "path": "__neonMixProof.ratchetLoop.ok",
83
+ "expected_value": true,
84
+ "timeout_ms": 10000
85
+ },
86
+ {
87
+ "type": "screenshot",
88
+ "label": "neon-ratchet-loop-mix-level-search",
89
+ "mode": "viewport"
90
+ }
91
+ ]
92
+ },
93
+ "checks": [
94
+ {
95
+ "type": "route_loaded",
96
+ "expected_path": "/games/drum-sequencer"
97
+ },
98
+ {
99
+ "type": "selector_visible",
100
+ "selector": ".drum-sequencer h1"
101
+ },
102
+ {
103
+ "type": "no_horizontal_overflow"
104
+ },
105
+ {
106
+ "type": "no_fatal_console_errors"
107
+ }
108
+ ],
109
+ "artifacts": [
110
+ "screenshot",
111
+ "console",
112
+ "dom_summary",
113
+ "proof_json"
114
+ ],
115
+ "baseline_policy": "invariant_only",
116
+ "failure_policy": {
117
+ "environment_blocked": "neutral",
118
+ "proof_insufficient": "review",
119
+ "needs_human_review": "review",
120
+ "product_regression": "fail"
121
+ },
122
+ "metadata": {
123
+ "pack_id": "neon_step_sequencer",
124
+ "pack_public_name": "Neon Step Sequencer Pack",
125
+ "evidence_role_pattern": "interaction_snapshots",
126
+ "purpose": "Run a bounded loop that tests Neon mix-level change-claim candidates using the mix-level-search strategy.",
127
+ "required_receipts": [
128
+ "ratchet loop returns ok",
129
+ "baseline proof-window summary 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"
134
+ ],
135
+ "does_not_prove": [
136
+ "subjective mix quality",
137
+ "that a supported claim candidate should be kept",
138
+ "all possible mix edits"
139
+ ]
140
+ }
141
+ }