4.9 KiB
Data and consumer migration
The latest approved scope permits target-guided diagnosis of general rules and fitting shared theory coefficients. Production target reads, copied tunes, per-song recipes and hidden phrase banks remain prohibited. Policy provenance records this development influence; these four targets are not an unseen evaluation set. A development weight artifact is not automatically a production resource. The first table records the inherited migration at the starting revision; the selector-repair section below identifies this iteration's changes.
| Path | Action | Live consumer / reason |
|---|---|---|
data/songs/ |
Keep untouched | Authoritative source melody, harmony, meter and form |
data/scales/ |
Keep 21 patterns | Ordinary mapped movement; no added scale family |
data/sequences/ |
Keep 2,954 paths | Operators licenses exact repeated degree strides; other paths remain available but are not all active choices |
data/rhythms/ |
Keep 3,538 snippets | Whole coherent meter-specific representatives; file count does not determine frequency |
composition/rhythms.json |
Keep | Authored melodic cells and canonical sparse comping |
composition/solo.json |
Migrate | Keep cells/groups; remove hash-selection menus and dead scorer settings; add action durations and search budgets |
composition/harmony.json |
Extend | Stable/resolving colors; mapped half-diminished natural 13 only before a functional dominant |
composition/lead_ins.json |
Extend | Whole approaches, separated enclosures, complete subdivisions, delayed exact-target resolution |
composition/roles.json |
Migrate solo fields | Soft registers and shared action weights replace unused menus; comping fields retained |
data/expected/ |
Keep validation-only | Arrangement compatibility, never selection |
Four XML files in build/ |
Keep untouched | Explicit development derivation/fitting and downstream comparison |
build/.../repair/fitting/ |
Development artifact | Not loaded by production; failed fits are not promoted |
<composition-cache>/_resources/ |
Add derivative | Checksummed JSON production catalogs keyed by content and decoder code; no song/role/reference result |
routes.py and Rhythms.realize are retired. scoring.py retains the evaluation record; selection.py is the sole scorer. operators.py owns enumerable actions. There is no legacy fallback. Deleted-API tests were replaced by active-constructor tests, not counted as passing removed tests.
The formulas are general relative intervals and durations, not extracted phrases. Supporting discussion: Berklee tension and resolution, available tensions, Locrian natural six. No example melody from these sources was imported. Numerical bounds are project choices, not universal jazz rules. Authored resources retain MIT licensing.
Cold-build independence cannot establish provenance alone; review policy/code diffs too. No source score, target score, tuning, fret limit, runtime score schema, velocity or playback feel was changed.
Selector repair at ef62af8
No scale, sequence, rhythm, harmony, lead-in, source-song or accompaniment vocabulary
was added or removed in this step. The live solo budget now names histories=16,
per_state=24, and completed=8; the obsolete backtracks setting is removed.
Role-level constructor-family weights were removed. Existing duration/metrical
preferences remain. Both roles still use all six strings and frets 1–12.
Operators now distinguishes scale thirds from written-chord arpeggios. Sequence
licensing is indexed once. Harmonic interval permissions, note objects and color
construction are memoized without changing their underlying theory rules.
Expensive validation can be deferred past cheap retrieval, but a candidate must
pass before it advances. The ordinary Operators.at diagnostic still returns
fully validated actions.
The old prefix-perceptron implementation was removed from audition/fit_selection.py.
Its replacement is audition/structured_learning.py, with the pinned optional
solver in audition/requirements-training.txt. Neither is imported by production.
audition/phrase_candidates.py exports ordinary completed alternatives without
accepting any target-file arguments. Failed development models remain under
build/solo_reference_comparison/structured; none is automatically copied to data.
audition/train_completed.py can form complete-output ranking constraints from
ordinary finished candidate reports. It verifies the source, role, vocabulary,
and evaluation version, and records explicit training dependencies. Its optional
staged data copy is for a subsequent ordinary cold build, not automatic promotion.