@riddledc/riddle-proof-packs 0.4.1 → 0.4.3

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 (28) hide show
  1. package/README.md +2 -1
  2. package/dist/index.cjs +62 -7
  3. package/dist/index.js +62 -7
  4. package/package.json +1 -1
  5. package/packs/neon-step-sequencer/README.md +4 -2
  6. package/packs/neon-step-sequencer/case-study/findings.md +22 -0
  7. package/packs/neon-step-sequencer/case-study/ratchet-card.md +3 -1
  8. package/packs/neon-step-sequencer/case-study/ratchet-log.md +110 -0
  9. package/packs/neon-step-sequencer/case-study/reusable-lessons.md +4 -0
  10. package/packs/neon-step-sequencer/examples/README.md +4 -1
  11. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/artifact-manifest.json +32 -0
  12. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/console.json +4 -0
  13. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/dom-summary.json +40 -0
  14. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/profile-result.json +2917 -0
  15. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/proof.json +2917 -0
  16. 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
  17. 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
  18. package/packs/neon-step-sequencer/examples/run-005-explore-songs-and-mixes-final/summary.md +52 -0
  19. package/packs/neon-step-sequencer/examples/run-006-ratchet-loop-human-review-packet/artifact-manifest.json +32 -0
  20. package/packs/neon-step-sequencer/examples/run-006-ratchet-loop-human-review-packet/console.json +4 -0
  21. package/packs/neon-step-sequencer/examples/run-006-ratchet-loop-human-review-packet/dom-summary.json +40 -0
  22. package/packs/neon-step-sequencer/examples/run-006-ratchet-loop-human-review-packet/profile-result.json +11786 -0
  23. package/packs/neon-step-sequencer/examples/run-006-ratchet-loop-human-review-packet/proof.json +11786 -0
  24. package/packs/neon-step-sequencer/examples/run-006-ratchet-loop-human-review-packet/screenshots/lilarcade-neon-ratchet-loop-mix-level-search-desktop-neon-ratchet-loop-mix-level-search.png +0 -0
  25. package/packs/neon-step-sequencer/examples/run-006-ratchet-loop-human-review-packet/screenshots/lilarcade-neon-ratchet-loop-mix-level-search-desktop.png +0 -0
  26. package/packs/neon-step-sequencer/examples/run-006-ratchet-loop-human-review-packet/summary.md +44 -0
  27. package/packs/neon-step-sequencer/profiles/explore-songs-and-mixes.json +33 -7
  28. package/packs/neon-step-sequencer/profiles/ratchet-loop-mix-level-search.json +29 -0
@@ -0,0 +1,44 @@
1
+ # Run 006 - Ratchet Loop Human-Review Packet
2
+
3
+ - profile: `lilarcade-neon-ratchet-loop-mix-level-search`
4
+ - evidence_role_pattern: `interaction_snapshots`
5
+ - status: `passed`
6
+ - captured_at: `2026-05-24T06:15:38.159Z`
7
+ - runner: `local-playwright`
8
+ - target: `http://127.0.0.1:5177/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 the bounded `mix-level-search` ratchet loop and return a compact `humanReviewPacket` that summarizes supported claim candidates, objective guardrails, state restoration, and subjective-listening caveats without claiming automated taste.
13
+
14
+ ## Evidence
15
+
16
+ | Field | Value |
17
+ | --- | --- |
18
+ | loop status | `claim_candidate_supported` |
19
+ | human-review packet kind | `human_review_packet` |
20
+ | human-review packet status | `candidate_ready_for_listening_review` |
21
+ | recommended candidate | `chord -0.10` |
22
+ | recommended action | `set_mixer_level chord 0.38 -> 0.28` |
23
+ | supported candidates | `6` |
24
+ | rejected candidates | `0` |
25
+ | ranking role | `review_order_only` |
26
+ | baseline candidate-ranking metric | `28.8336` |
27
+ | best candidate-ranking metric | `27.0709` |
28
+ | ranking metric delta | `1.7626` |
29
+ | state restored after loop | `true` |
30
+ | permanent edit kept | `false` |
31
+
32
+ The packet caveats state that it does not prove subjective mix quality, that supported candidates prove objective receipts and guardrails only, that ranking orders review rather than taste, and that keeping/applying the candidate still requires listening review.
33
+
34
+ ## Verdict
35
+
36
+ Passed. The loop produced a review packet suitable for agent or human handoff. The proof supports that a candidate changed the requested measurable state while preserving guardrails; it does not decide whether the candidate is musically preferable.
37
+
38
+ ## What This Does Not Prove
39
+
40
+ - subjective mix quality
41
+ - that `chord -0.10` should be accepted without listening review
42
+ - that the ranking metric is a taste score
43
+ - that all possible candidate edits were explored
44
+ - production CDN asset availability
@@ -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
  ],
@@ -40,6 +40,7 @@
40
40
  "path": "__NEON_MIX_PROOF__.runRatchetLoop",
41
41
  "args": [
42
42
  {
43
+ "intent": "turn the chord part down a little",
43
44
  "strategy": "mix-level-search",
44
45
  "focusTracks": [
45
46
  "bass",
@@ -74,6 +75,15 @@
74
75
  },
75
76
  {
76
77
  "path": "supportedClaimCandidateCount"
78
+ },
79
+ {
80
+ "path": "humanReviewPacket.status"
81
+ },
82
+ {
83
+ "path": "humanReviewPacket.recommendation.candidate.action.track"
84
+ },
85
+ {
86
+ "path": "humanReviewPacket.ranking.role"
77
87
  }
78
88
  ]
79
89
  },
@@ -83,6 +93,24 @@
83
93
  "expected_value": true,
84
94
  "timeout_ms": 10000
85
95
  },
96
+ {
97
+ "type": "assert_window_value",
98
+ "path": "__neonMixProof.ratchetLoop.humanReviewPacket.kind",
99
+ "expected_value": "human_review_packet",
100
+ "timeout_ms": 10000
101
+ },
102
+ {
103
+ "type": "assert_window_value",
104
+ "path": "__neonMixProof.ratchetLoop.humanReviewPacket.ranking.role",
105
+ "expected_value": "review_order_only",
106
+ "timeout_ms": 10000
107
+ },
108
+ {
109
+ "type": "assert_window_value",
110
+ "path": "__neonMixProof.ratchetLoop.humanReviewPacket.request.candidateActionsAreTransient",
111
+ "expected_value": true,
112
+ "timeout_ms": 10000
113
+ },
86
114
  {
87
115
  "type": "screenshot",
88
116
  "label": "neon-ratchet-loop-mix-level-search",
@@ -130,6 +158,7 @@
130
158
  "claim candidates are captured",
131
159
  "each candidate records claim receipts",
132
160
  "best supported claim candidate or human-review status is captured",
161
+ "compact human-review packet is captured",
133
162
  "state restoration receipt is captured"
134
163
  ],
135
164
  "does_not_prove": [