@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.
- package/dist/index.cjs +147 -2
- package/dist/index.js +147 -2
- package/package.json +1 -1
- package/packs/neon-step-sequencer/README.md +9 -1
- package/packs/neon-step-sequencer/case-study/findings.md +15 -4
- package/packs/neon-step-sequencer/case-study/ratchet-card.md +2 -1
- package/packs/neon-step-sequencer/case-study/ratchet-log.md +42 -9
- package/packs/neon-step-sequencer/case-study/reusable-lessons.md +4 -0
- package/packs/neon-step-sequencer/examples/README.md +3 -0
- package/packs/neon-step-sequencer/examples/run-004-ratchet-loop-mix-level-search/profile-result.json +10132 -0
- package/packs/neon-step-sequencer/examples/run-004-ratchet-loop-mix-level-search/summary.md +49 -0
- package/packs/neon-step-sequencer/profiles/ratchet-loop-mix-level-search.json +141 -0
|
@@ -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
|
+
}
|