3.1 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.
| 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.