Files
product-vamp/docs/composer/active_path_audit.md
T
khodowany 654299decd Cleanup
2026-10-05 08:51:03 -05:00

4.8 KiB

Active selector audit

Starting revision: ef62af892bce168e2e9846dc6035b414f55d8959. Previous results are preserved in baseline_ef62af8.md. The current candidate baseline is under build/solo_reference_comparison/structured/baseline; previously published assets were not replaced.

Before: production.generate_role → composer.compose → Builder.compose → greedy action cost per quarter → occasional dead-end backtrack → reporting phrases → placement → validation/export.

After: production.generate_role → composer.compose → Builder.compose → common-time multi-history frontiers → complete sounded-event evaluation → whole-solo winner → placement → validation/export.

Finding Reproduced evidence Change
Immediate commitment DFS continued the first cheapest action; alternative histories were visited only after failure Multiple histories survive to equal-time checkpoints; whole completed candidates compete
Segmentation-dependent objective Prefix total summed individually normalized action rates One canonical event-stream evaluation; notation ties merge and rest partitions disappear
Constructor-family bonuses Acoustic kind/arpeggio, kind/answer; electric kind/scalar, kind/enclosure Removed from data and rejected by fitted-feature schema
False arpeggio label Constant scale-degree stride ±2 Renamed scale_thirds; actual arpeggios walk members of the written chord
Premature home identity First four eligible recent notes Home comes from the completed opening source window and survives separately from the last-eight-note context
Prefix fitting Early-update perceptron optimized first mismatch Replaced by shared bounded integer constraints from complete outputs
Coverage proof lost obligations Constrained derivation merged histories solely by time Stateful diagnostic retains pending contracts and validates the complete resulting stream
Repeated expensive work One-bar cProfile spent most cumulative time in action enumeration/validation Cached note/route calculations; indexed sequence licensing; deferred full validation with replacement of rejected proposals

Budget: 16 histories, 24 valid successors per history, eight completed exports. Retrieval ranks within equal-endpoint buckets, then round-robins endpoints. It does not compare variable-duration actions by their individual cost rates. Frontier scores cover the same heard span. A selected action may extend beyond a checkpoint; its actual unsplit notes, route and obligations remain stored. Computational quarter-note checkpoints and four-source-measure home selection are not forced cadences. Final phrase reporting does not insert notes or endings.

Each destructive frontier records proposed/distinct/retained counts. A read-only development observer can compare those cuts with a training example; its return value cannot change selection. Absence from the final eight is not proof of unrepresentability. The ordinary build never installs that observer or imports a training/reference reader.

This is bounded phrase/chorus comparison, not globally optimal search. Early cuts can still lose a desirable complete phrase. Opening diversity is retained in addition to recent rhythmic diversity; it does not guarantee eight aesthetically different or convincing tunes.

Reproduction failure observed in the current candidate

The optional structured/exact-opening-pruning.json probe observes the ordinary first successor cutoff without changing decisions. All Me acoustic has one exact compatible action among 9,853 and retains none; electric has two and retains none. Autumn acoustic has two among 8,492 and retains none; electric has nine and retains none. Every case retains 24 successors. All four therefore fail at retrieval, before complete-output selection. The earlier opening-pruning.json compared clipped audible prefixes and counted a shortened hold as surviving. That weaker diagnostic was corrected: committed attacks must match their complete durations. Separate stateful constrained derivation reaches all four complete targets with no diagnostic history pruning; that establishes construction coverage only.

Full generation also confirms a ranking failure: all four complete targets score worse than their selected outputs under the default evaluator. Exact totals and contribution differences are in evaluation-diagnosis-all.json. Eight surviving complete alternatives are not proof that the necessary alternatives survived.

The first full regression run also exposed optional-color lookahead parsing an explicit N.C. span as a chord. eligible_color now rejects missing/no-collection harmonic spans before parsing. The current production sources' affected contexts are recorded separately so a build started before that repair is not silently described as a build from identical code.