@riddledc/riddle-proof-packs 0.4.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 +13 -9
- package/dist/index.js +13 -9
- package/package.json +1 -1
- package/packs/neon-step-sequencer/README.md +2 -2
- package/packs/neon-step-sequencer/case-study/findings.md +6 -6
- package/packs/neon-step-sequencer/case-study/ratchet-card.md +1 -1
- package/packs/neon-step-sequencer/case-study/ratchet-log.md +13 -12
- package/packs/neon-step-sequencer/case-study/reusable-lessons.md +1 -1
- package/packs/neon-step-sequencer/examples/README.md +2 -1
- package/packs/neon-step-sequencer/examples/run-004-ratchet-loop-mix-level-search/profile-result.json +3260 -131
- package/packs/neon-step-sequencer/examples/run-004-ratchet-loop-mix-level-search/summary.md +18 -8
- package/packs/neon-step-sequencer/profiles/ratchet-loop-mix-level-search.json +13 -9
package/dist/index.cjs
CHANGED
|
@@ -1665,7 +1665,7 @@ var ratchet_loop_mix_level_search_default = {
|
|
|
1665
1665
|
},
|
|
1666
1666
|
{
|
|
1667
1667
|
type: "window_call",
|
|
1668
|
-
label: "
|
|
1668
|
+
label: "test-claim-candidates-mix-level-search",
|
|
1669
1669
|
path: "__NEON_MIX_PROOF__.runRatchetLoop",
|
|
1670
1670
|
args: [
|
|
1671
1671
|
{
|
|
@@ -1679,8 +1679,7 @@ var ratchet_loop_mix_level_search_default = {
|
|
|
1679
1679
|
maxIterations: 6,
|
|
1680
1680
|
monitorProfile: "smallSpeaker",
|
|
1681
1681
|
restore: true,
|
|
1682
|
-
applyBest: false
|
|
1683
|
-
minImprovement: 0.1
|
|
1682
|
+
applyBest: false
|
|
1684
1683
|
}
|
|
1685
1684
|
],
|
|
1686
1685
|
store_return_to: "__neonMixProof.ratchetLoop",
|
|
@@ -1697,10 +1696,13 @@ var ratchet_loop_mix_level_search_default = {
|
|
|
1697
1696
|
path: "strategy"
|
|
1698
1697
|
},
|
|
1699
1698
|
{
|
|
1700
|
-
path: "
|
|
1699
|
+
path: "best.claimVerdict.status"
|
|
1701
1700
|
},
|
|
1702
1701
|
{
|
|
1703
|
-
path: "best.
|
|
1702
|
+
path: "best.claimCandidate.action.track"
|
|
1703
|
+
},
|
|
1704
|
+
{
|
|
1705
|
+
path: "supportedClaimCandidateCount"
|
|
1704
1706
|
}
|
|
1705
1707
|
]
|
|
1706
1708
|
},
|
|
@@ -1750,16 +1752,18 @@ var ratchet_loop_mix_level_search_default = {
|
|
|
1750
1752
|
pack_id: "neon_step_sequencer",
|
|
1751
1753
|
pack_public_name: "Neon Step Sequencer Pack",
|
|
1752
1754
|
evidence_role_pattern: "interaction_snapshots",
|
|
1753
|
-
purpose: "Run a bounded
|
|
1755
|
+
purpose: "Run a bounded loop that tests Neon mix-level change-claim candidates using the mix-level-search strategy.",
|
|
1754
1756
|
required_receipts: [
|
|
1755
1757
|
"ratchet loop returns ok",
|
|
1756
1758
|
"baseline proof-window summary is captured",
|
|
1757
|
-
"
|
|
1758
|
-
"
|
|
1759
|
+
"claim candidates are captured",
|
|
1760
|
+
"each candidate records claim receipts",
|
|
1761
|
+
"best supported claim candidate or human-review status is captured",
|
|
1762
|
+
"state restoration receipt is captured"
|
|
1759
1763
|
],
|
|
1760
1764
|
does_not_prove: [
|
|
1761
1765
|
"subjective mix quality",
|
|
1762
|
-
"that
|
|
1766
|
+
"that a supported claim candidate should be kept",
|
|
1763
1767
|
"all possible mix edits"
|
|
1764
1768
|
]
|
|
1765
1769
|
}
|
package/dist/index.js
CHANGED
|
@@ -1630,7 +1630,7 @@ var ratchet_loop_mix_level_search_default = {
|
|
|
1630
1630
|
},
|
|
1631
1631
|
{
|
|
1632
1632
|
type: "window_call",
|
|
1633
|
-
label: "
|
|
1633
|
+
label: "test-claim-candidates-mix-level-search",
|
|
1634
1634
|
path: "__NEON_MIX_PROOF__.runRatchetLoop",
|
|
1635
1635
|
args: [
|
|
1636
1636
|
{
|
|
@@ -1644,8 +1644,7 @@ var ratchet_loop_mix_level_search_default = {
|
|
|
1644
1644
|
maxIterations: 6,
|
|
1645
1645
|
monitorProfile: "smallSpeaker",
|
|
1646
1646
|
restore: true,
|
|
1647
|
-
applyBest: false
|
|
1648
|
-
minImprovement: 0.1
|
|
1647
|
+
applyBest: false
|
|
1649
1648
|
}
|
|
1650
1649
|
],
|
|
1651
1650
|
store_return_to: "__neonMixProof.ratchetLoop",
|
|
@@ -1662,10 +1661,13 @@ var ratchet_loop_mix_level_search_default = {
|
|
|
1662
1661
|
path: "strategy"
|
|
1663
1662
|
},
|
|
1664
1663
|
{
|
|
1665
|
-
path: "
|
|
1664
|
+
path: "best.claimVerdict.status"
|
|
1666
1665
|
},
|
|
1667
1666
|
{
|
|
1668
|
-
path: "best.
|
|
1667
|
+
path: "best.claimCandidate.action.track"
|
|
1668
|
+
},
|
|
1669
|
+
{
|
|
1670
|
+
path: "supportedClaimCandidateCount"
|
|
1669
1671
|
}
|
|
1670
1672
|
]
|
|
1671
1673
|
},
|
|
@@ -1715,16 +1717,18 @@ var ratchet_loop_mix_level_search_default = {
|
|
|
1715
1717
|
pack_id: "neon_step_sequencer",
|
|
1716
1718
|
pack_public_name: "Neon Step Sequencer Pack",
|
|
1717
1719
|
evidence_role_pattern: "interaction_snapshots",
|
|
1718
|
-
purpose: "Run a bounded
|
|
1720
|
+
purpose: "Run a bounded loop that tests Neon mix-level change-claim candidates using the mix-level-search strategy.",
|
|
1719
1721
|
required_receipts: [
|
|
1720
1722
|
"ratchet loop returns ok",
|
|
1721
1723
|
"baseline proof-window summary is captured",
|
|
1722
|
-
"
|
|
1723
|
-
"
|
|
1724
|
+
"claim candidates are captured",
|
|
1725
|
+
"each candidate records claim receipts",
|
|
1726
|
+
"best supported claim candidate or human-review status is captured",
|
|
1727
|
+
"state restoration receipt is captured"
|
|
1724
1728
|
],
|
|
1725
1729
|
does_not_prove: [
|
|
1726
1730
|
"subjective mix quality",
|
|
1727
|
-
"that
|
|
1731
|
+
"that a supported claim candidate should be kept",
|
|
1728
1732
|
"all possible mix edits"
|
|
1729
1733
|
]
|
|
1730
1734
|
}
|
package/package.json
CHANGED
|
@@ -33,7 +33,7 @@ This pack is the first app-specific lab for the open Riddle Proof architecture.
|
|
|
33
33
|
|
|
34
34
|
The loop is not mix-specific as a proof concept. The proof concept is a bounded ratchet loop: propose a candidate, apply it, collect evidence, classify the result, restore or keep state, and repeat until the budget is exhausted.
|
|
35
35
|
|
|
36
|
-
This pack's first concrete strategy is `mix-level-search`, which
|
|
36
|
+
This pack's first concrete strategy is `mix-level-search`, which turns small level edits into change-claim candidates. Each candidate says what action will be attempted, what receipts must support the claim, and what evidence should be reviewed afterward. The loop may include a ranking metric to order review, but the verdict comes from receipts and invariants, not from a universal mix-quality number. It still does not decide subjective mix taste; the output is a listening and review packet.
|
|
37
37
|
|
|
38
38
|
## Example evidence
|
|
39
39
|
|
|
@@ -42,7 +42,7 @@ The `examples/` directory contains four local Playwright proof results captured
|
|
|
42
42
|
- `run-001-fast-mix-health`: passing `current_target` audit with proof contract, source readiness, mix RMS `0.1234`, peak `0.8321`, and no clipping.
|
|
43
43
|
- `run-002-mix-change`: passing `interaction_snapshots` proof where a bass-level edit moved bass RMS from `0.0507` to `0.1071` and mix RMS from `0.073` to `0.1264` without clipping.
|
|
44
44
|
- `run-003-full-matrix`: passing `current_target` viewport matrix across desktop, phone, iPad Mini, and iPad with `0 px` horizontal overflow.
|
|
45
|
-
- `run-004-ratchet-loop-mix-level-search`: passing `interaction_snapshots` proof where a bounded loop tested six mix-level candidates
|
|
45
|
+
- `run-004-ratchet-loop-mix-level-search`: passing `interaction_snapshots` proof where a bounded loop tested six mix-level change-claim candidates, found a supported `chord -0.10` candidate, recorded receipt-level verdicts, and restored app state without keeping the edit.
|
|
46
46
|
|
|
47
47
|
## Naming note
|
|
48
48
|
|
|
@@ -41,7 +41,7 @@ Profile render window, song fixture, or authoring guide.
|
|
|
41
41
|
|
|
42
42
|
### Subjective boundary
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
Receipts can support that a requested mix-level change happened and stayed inside guardrails, but deciding whether the mix is musically better requires listening.
|
|
45
45
|
|
|
46
46
|
Likely change:
|
|
47
47
|
|
|
@@ -93,9 +93,9 @@ Pack summary guidance first; Riddle Proof core only if a general display primiti
|
|
|
93
93
|
### Run 004 proved the bounded loop shape without making it mix-specific
|
|
94
94
|
|
|
95
95
|
- run: `run-004-ratchet-loop-mix-level-search`
|
|
96
|
-
- claim: a bounded ratchet loop can try
|
|
97
|
-
- observed evidence: `mix-level-search` tested `6` candidates; baseline
|
|
98
|
-
- classification: none; passing `interaction_snapshots` proof with subjective listening caveat.
|
|
96
|
+
- claim: a bounded ratchet loop can try change-claim candidates, collect proof-window evidence, record receipt verdicts, select a supported candidate for review, and restore state.
|
|
97
|
+
- observed evidence: `mix-level-search` tested `6` candidates; baseline candidate-ranking metric was `28.8336`; best candidate-ranking metric was `27.07095`; best supported claim candidate was `chord -0.10` to level `0.28`; loop status was `claim_candidate_supported`; receipt checks covered edit acceptance, contract level agreement, rendered target metric movement, required instrument activity, no clipping, and no low-level proof window; console fatal count was `0`.
|
|
98
|
+
- classification: none; passing `interaction_snapshots` proof with subjective listening caveat. The ranking metric is a review-order hint, not a proof verdict.
|
|
99
99
|
- smallest layer changed: generic app proof-contract loop plus one Neon strategy.
|
|
100
100
|
- change made: added `runRatchetLoop` with a `mix-level-search` strategy and a proof-pack profile that calls it.
|
|
101
101
|
- rerun: passed on May 24, 2026.
|
|
@@ -108,6 +108,6 @@ Pack summary guidance first; Riddle Proof core only if a general display primiti
|
|
|
108
108
|
- observed evidence: complete passing artifacts were written, but the wrapper process lingered after artifact write and had to be stopped.
|
|
109
109
|
- classification: `proof_insufficient` for operator ergonomics, not a Neon product regression.
|
|
110
110
|
- smallest layer changed: none in this pack.
|
|
111
|
-
- change made:
|
|
112
|
-
- rerun:
|
|
111
|
+
- change made: fixed the local Playwright runner timeout cleanup in `@riddledc/riddle-proof-runner-playwright`.
|
|
112
|
+
- rerun: later runner smoke tests and the published `0.4.3` package exited cleanly.
|
|
113
113
|
- next sharper question: should the local runner force-close browser handles or expose a clearer artifact-written exit phase?
|
|
@@ -33,7 +33,7 @@ The project shows that a complex audio app can improve proof confidence mostly b
|
|
|
33
33
|
- Run 001: a `current_target` audit connected the Neon route, proof contract, source readiness, and offline mix-health metrics.
|
|
34
34
|
- Run 002: an `interaction_snapshots` proof showed a bass-level edit moving bass RMS from `0.0507` to `0.1071` and mix RMS from `0.073` to `0.1264` without clipping.
|
|
35
35
|
- Run 003: a `current_target` matrix passed across desktop, phone, iPad Mini, and iPad with `0 px` horizontal overflow.
|
|
36
|
-
- Run 004: a bounded loop tested six `mix-level-search` candidates, returned `chord -0.10` as
|
|
36
|
+
- Run 004: a bounded loop tested six `mix-level-search` change-claim candidates, returned `chord -0.10` as a supported review candidate with receipt-level evidence, and restored app state.
|
|
37
37
|
|
|
38
38
|
## Honest boundary
|
|
39
39
|
|
|
@@ -177,7 +177,7 @@ Can the pack explore song/mix combinations and produce a prioritized confidence
|
|
|
177
177
|
|
|
178
178
|
Claim:
|
|
179
179
|
|
|
180
|
-
Neon can run a bounded ratchet loop that proposes mix-level candidates, applies each candidate, captures proof-window evidence,
|
|
180
|
+
Neon 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 app state.
|
|
181
181
|
|
|
182
182
|
Profile:
|
|
183
183
|
|
|
@@ -185,16 +185,16 @@ Profile:
|
|
|
185
185
|
|
|
186
186
|
Evidence to capture:
|
|
187
187
|
|
|
188
|
-
- baseline
|
|
189
|
-
- per-candidate
|
|
190
|
-
-
|
|
188
|
+
- baseline candidate-ranking metric
|
|
189
|
+
- per-candidate receipt verdicts
|
|
190
|
+
- supported claim candidate and ranking metric delta
|
|
191
191
|
- state restoration receipt
|
|
192
192
|
- compact caveats for human handoff
|
|
193
193
|
|
|
194
194
|
Possible outcomes:
|
|
195
195
|
|
|
196
|
-
- `
|
|
197
|
-
- `needs_human_review`: evidence is valid but no
|
|
196
|
+
- `claim_candidate_supported`: at least one candidate has the receipts needed to support its change claim.
|
|
197
|
+
- `needs_human_review`: evidence is valid but no candidate has enough receipts to support the proposed claim automatically.
|
|
198
198
|
- `proof_insufficient`: the app contract or proof window does not provide enough evidence.
|
|
199
199
|
- `profile_calibration`: the chosen tracks, windows, or thresholds do not fit the target.
|
|
200
200
|
|
|
@@ -206,17 +206,18 @@ Observed evidence:
|
|
|
206
206
|
|
|
207
207
|
- strategy `mix-level-search`
|
|
208
208
|
- tested `6` candidates across `bass`, `chord`, `guitar`, and `rhythmSynth`
|
|
209
|
-
- baseline
|
|
210
|
-
- best
|
|
211
|
-
-
|
|
212
|
-
- best candidate `chord -0.10` to level `0.28`
|
|
213
|
-
-
|
|
209
|
+
- baseline candidate-ranking metric `28.8336`
|
|
210
|
+
- best candidate-ranking metric `27.07095`
|
|
211
|
+
- ranking metric delta `1.7627`
|
|
212
|
+
- best supported claim candidate `chord -0.10` to level `0.28`
|
|
213
|
+
- claim receipts recorded for edit acceptance, contract level agreement, rendered target metric movement, required instrument activity, no clipping, and no low-level proof window
|
|
214
|
+
- loop status `claim_candidate_supported`
|
|
214
215
|
- app state restored after the run
|
|
215
216
|
- console fatal count `0`
|
|
216
217
|
|
|
217
218
|
Failure classification:
|
|
218
219
|
|
|
219
|
-
None. This was a passing `interaction_snapshots` loop proof, with an explicit listening-review caveat.
|
|
220
|
+
None. This was a passing `interaction_snapshots` loop proof, with an explicit listening-review caveat and a ranking metric that is only a review-order hint.
|
|
220
221
|
|
|
221
222
|
Smallest layer changed:
|
|
222
223
|
|
|
@@ -28,4 +28,4 @@ Most ratchet steps should change profile JSON, pack docs, app proof contracts, o
|
|
|
28
28
|
|
|
29
29
|
## Loops are generic
|
|
30
30
|
|
|
31
|
-
A ratchet loop should be domain-neutral: propose a candidate, apply
|
|
31
|
+
A ratchet loop should be domain-neutral: propose a claim candidate, apply its action, collect evidence, classify receipt-level support, restore or keep state, and repeat within a budget. Neon `mix-level-search` is a strategy plugged into that loop, not the loop's identity.
|
|
@@ -11,7 +11,7 @@ The raw `profile-result.json` files are real runner outputs. They intentionally
|
|
|
11
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
12
|
| `run-002-mix-change` | `interaction_snapshots` | passed | A bass-level edit changes rendered bass and mix metrics without clipping. |
|
|
13
13
|
| `run-003-full-matrix` | `current_target` | passed | The mix-health proof holds across desktop, phone, iPad Mini, and iPad viewports. |
|
|
14
|
-
| `run-004-ratchet-loop-mix-level-search` | `interaction_snapshots` | passed | A bounded ratchet loop tests mix-level candidates,
|
|
14
|
+
| `run-004-ratchet-loop-mix-level-search` | `interaction_snapshots` | passed | A bounded ratchet loop tests mix-level change-claim candidates, records receipt verdicts, chooses a supported candidate for review, and restores app state. |
|
|
15
15
|
|
|
16
16
|
## What these examples do not prove
|
|
17
17
|
|
|
@@ -20,3 +20,4 @@ The raw `profile-result.json` files are real runner outputs. They intentionally
|
|
|
20
20
|
- They do not prove production CDN asset availability; these were local dev-server runs.
|
|
21
21
|
- 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.
|
|
22
22
|
- The ratchet-loop run does not prove that the loop primitive is mix-specific; `mix-level-search` is only this pack's first concrete strategy.
|
|
23
|
+
- The ratchet-loop run does not prove that the supported candidate should be kept. Its ranking metric is a review-order hint, not a taste verdict.
|