# SPRINT v0.1.42 - Live Proof of Open-Project Editing

## Goal

Validate and use the existing MCP editing path on the already-open Ableton project:

- C:\Users\ren\Desktop\song Project\song.als

This sprint is not a generation sprint and not a wrapper-expansion sprint.

It is a runtime-proof sprint:

- prove the MCP can inspect the real open project
- prove the MCP can apply real Arrangement edits on that project
- prove the edits improve coherence in measurable ways
- document exact evidence or fail explicitly

## Why This Task Exists

The previous run failed.

Repository truth from the failed run:

- infrastructure was added in AbletonMCP_AI/MCP_Server/server.py
- contextual snare scoring was added in AbletonMCP_AI/MCP_Server/sample_selector.py
- docs/SPRINT_v0.1.41_VALIDATION_REPORT.md was corrected to an honest fail
- no live MCP calls were exercised against song.als
- no real edit pass was applied
- no before/after coherence metrics were captured
- no proof exists that the new editing tools work through the real Ableton runtime path

The highest-signal blocker is now obvious:

- stop adding unvalidated infrastructure
- prove runtime behavior on the open project
- if runtime behavior is blocked, isolate the exact blocker with raw evidence

## Required Work

1. Prove the live target is the real open project.
- Connect through the MCP to the active Ableton session.
- Capture enough session evidence to prove the target is the already-open song.als session and not a generated set or blank template.
- Save raw outputs under temp/.

2. Validate the existing MCP tool path live before adding more tools.
- Exercise these tools against the open project and record exact calls plus raw outputs:
  - get_session_info()
  - get_tracks()
  - get_track_info(...)
  - get_clips(...)
  - get_clip_info(...)
  - get_devices(...)
  - get_device_parameters(...)
  - set_device_parameter_by_name(...)
  - one arrangement creation or duplication path
  - one arrangement MIDI note insertion path
- For each tool, classify it as:
  - live validated
  - failed live
  - blocked by backend/runtime limitation
- Do not mark a tool complete just because it compiles.

3. If a live tool path fails, fix only the minimal blocker.
- Use the existing code added in v0.1.41 as the starting point.
- If a backend handler or runtime path is missing, add the smallest fix needed in the real runtime path.
- Re-run the exact same MCP call after the fix and save the before/after evidence.
- Do not add unrelated new feature surface.

4. Audit the open project before editing.
- Run project-facing audits on the real song.als session.
- Capture exact before metrics for:
  - silence islands
  - mirrored section pairs
  - harmonic coverage / harmonic backbone status
  - same-source dominance or repeated-source overuse
  - repeated clip overuse if available
- Save raw outputs under temp/.
- Use these audits to choose the edit targets.

5. Apply a bounded real edit pass on song.als.
- Use the validated MCP editing tools on the real open project.
- The edit pass must be small, targeted, and measurable.
- Prioritize:
  - extending or repairing harmonic MIDI backbone in Arrangement
  - reducing dead gaps
  - breaking at least one mirrored or obviously repeated arrangement shape
  - improving continuity without destroying identity
- The harmonic MIDI backbone must become real Arrangement content intended to be audible.
- It is acceptable to use keys, pluck, pad, or synth timbre.
- It is not acceptable to leave the backbone as metadata, a hidden clip, or an empty placeholder.

6. Validate snare selectivity in the real path.
- Do not hard-ban SS_RNBL_Me_Gustas_One_Shot_Snare.wav.
- Prove whether the new contextual snare scoring actually affects selection in real use.
- If the logic exists but is not wired into the live path, wire the minimal real path and validate it.
- Record exact evidence showing whether lower-energy sections are treated more conservatively than higher-energy sections.

7. Re-audit after editing.
- Run the same project-facing audits again.
- Save raw after-state outputs under temp/.
- Produce an exact before/after table using measured values, not estimates.
- State clearly what improved, what stayed flat, and what regressed.

8. Keep the scope disciplined.
- Touch only the files directly required to validate or minimally fix the runtime editing path.
- Likely files:
  - AbletonMCP_AI/MCP_Server/server.py
  - AbletonMCP_AI/MCP_Server/sample_selector.py
  - abletonmcp_init.py
  - AbletonMCP_AI/abletonmcp_runtime.py
  - docs/SPRINT_v0.1.42_VALIDATION_REPORT.md
- Do not add broad new capability areas unless they are the direct blocker to a required live validation step.

9. Fail fast if the runtime is not reachable.
- If Ableton, the control surface, or the MCP connection is unavailable, do not continue building infrastructure.
- Capture the exact failing step and raw evidence.
- Mark the sprint failed with specific blocker evidence.
- A code-only partial success is not acceptable for this sprint.

## Validation

Produce all of the following artifacts:

1. docs/SPRINT_v0.1.42_VALIDATION_REPORT.md
Required sections:
- Summary
- Files Changed
- Live Target Proof
- MCP Tools Validated Live
- Project Audits Before
- Project Edits Applied
- Project Audits After
- Before/After Metrics
- Snare Selectivity
- Harmonic MIDI Backbone
- What Is Still Weak
- Remaining Risks

2. temp/v04142_live_target_proof.json
- raw evidence proving the active Ableton session is the intended open project

3. temp/v04142_mcp_calls.jsonl
- one JSON line per MCP call
- include tool name, arguments, success or failure, and raw result or raw error

4. temp/v04142_before_audit.json
- raw before-state audit outputs

5. temp/v04142_after_audit.json
- raw after-state audit outputs

6. temp/v04142_edit_actions.json
- exact live edits attempted and whether each succeeded

7. If blocked, replace missing success artifacts with:
- temp/v04142_blocker_evidence.json
- include the exact failing step, exact raw response, and why the sprint could not proceed

Required validation actions:
- python -m py_compile on every changed Python file
- relevant tests for touched runtime/MCP/coherence code
- live MCP calls against the open project
- before and after audits on the same open project session
