# SPRINT v0.1.36 - NEXT FOR KIMI
## Expose Real Project-Editing Tools In MCP And Use `song.als` As The Benchmark

**Owner:** Kimi via OpenCode  
**Reviewer:** Codex  
**Fecha:** 2026-04-03  
**Context:** We are no longer only generating songs from scratch. We now need to edit already-open Ableton projects until they sound professional.

Primary benchmark project:

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

Supporting audit:

- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\PROJECT_AUDIT_song_2026-04-03.md`

---

## 1. Core Product Decision

From this sprint forward, the system must support two workflows:

1. `generate new song`
2. `edit existing opened project`

The second workflow is now mandatory.

The `song.als` project is the first real benchmark for it.

---

## 2. Current MCP Truth

Codex verified the current MCP situation.

### 2.1 What is already exposed as public MCP tools

The server already exposes:

- `get_session_info`
- `get_tracks`
- `get_track_info`
- `set_track_name`
- `set_track_color`
- `set_track_volume`
- `apply_clip_fades`
- `write_volume_automation`
- `apply_sidechain_pump`
- `arrange_song_structure`
- `set_loop_markers`
- `create_drum_pattern`
- `create_bassline`
- `create_chord_progression`
- `validate_set`
- `diagnose_generated_set`
- `get_generation_manifest`
- generation tools

This means:

- basic editing exists
- but not enough for serious project editing

### 2.2 What already exists in runtime but is NOT properly exposed as MCP tools

Codex verified these capabilities already exist in:

- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\abletonmcp_init.py`
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\abletonmcp_runtime.py`

Existing runtime commands include:

- `set_track_mute`
- `set_track_solo`
- `set_track_arm`
- `set_track_pan`
- `set_track_send`
- `set_device_parameter`
- `create_arrangement_clip`
- `add_notes_to_arrangement_clip`
- `duplicate_clip_to_arrangement`

These are exactly the kinds of operations we need for editing real projects.

### 2.3 Main gap

The gap is not “Ableton cannot do it”.

The gap is:

- the runtime can do it
- but the MCP server does not expose enough of it in a clean public interface

Conclusion:

- yes, we **must give those tools to MCP**

---

## 3. Project-Audit Truth To Respect

From `PROJECT_AUDIT_song_2026-04-03.md`, Kimi must treat these as real product targets:

- the arrangement exists but is still skeletal
- the project has useful palette and bass continuity
- the harmonic MIDI spine is empty in Arrangement
- there are too many arrangement islands
- the declared structure and actual timeline are mismatched
- this project is worth editing, not discarding

This sprint is therefore about:

- making project editing possible
- not about generating another new song

---

## 4. Coding Goals

## P0. Expose project-edit primitives as public MCP tools

Add public MCP tools in:

- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py`

using the already-existing runtime support underneath.

### Required new MCP tools

#### Inspection

- `get_clips(track_index)`
- `get_devices(track_index, track_type="track")`
- `get_clip_info(track_index, clip_index)`

These are required so an agent can inspect an already-open project without guessing.

#### Track control

- `set_track_mute(track_index, mute, track_type="track")`
- `set_track_solo(track_index, solo, track_type="track")`
- `set_track_arm(track_index, arm, track_type="track")`
- `set_track_pan(track_index, pan, track_type="track")`
- `set_track_send(track_index, send_index, value, track_type="track")`

These are required for real editing and mix decisions.

#### Device control

- `set_device_parameter(track_index, device_index, value, parameter_name="", parameter_index=-1, track_type="track")`

This is required to shape an already-built project instead of regenerating it.

#### Arrangement editing

- `create_arrangement_clip(track_index, start_time, length)`
- `add_notes_to_arrangement_clip(track_index, start_time, notes)`
- `duplicate_clip_to_arrangement(track_index, clip_index, start_time)`

These are the minimum serious tools needed to:

- fill harmonic holes
- extend sections
- edit MIDI support over an existing song

---

## P0. Add a first-class editing workflow for existing songs

Do not stop at exposing low-level tools.

Add one orchestration path in the server for project editing.

### Preferred direction

Add a tool like:

- `audit_current_project()`

and optionally:

- `refine_existing_song(...)`

But do **not** make `refine_existing_song` a fake magic black box.

It must internally use the new public MCP-edit tools and return inspectable actions.

### Minimum acceptable behavior for `audit_current_project()`

It should detect:

- longest drum gap
- longest harmonic gap
- tracks with zero arrangement clips
- MIDI harmonic tracks with devices but no clips
- declared section structure mismatch
- repeated sample overuse

This tool should be aimed at real projects, not only generated manifests.

---

## P0. Use `song.als` as the benchmark project

Kimi must develop against the actual benchmark:

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

The sprint is not complete if the new editing tools only work on toy examples.

Required benchmark checks:

- inspect tracks from the loaded project
- inspect clips from the loaded project
- inspect devices from the loaded project
- create or extend MIDI harmony in the loaded project

---

## P1. Do not confuse shell-level project opening with MCP editing

Opening a `.als` file can remain outside MCP for now.

Shell-level opening is acceptable:

- `Start-Process "C:\ProgramData\Ableton\Live 12 Suite\Program\Ableton Live 12 Suite.exe" -ArgumentList '"C:\Users\ren\Desktop\song Project\song.als"'`

That is not the blocker.

The blocker is:

- once the project is open, MCP still lacks enough public editing tools

So do not waste this sprint inventing a fancy “open set” MCP feature first.

Prioritize editing and inspection.

---

## P1. Keep product semantics correct

### No piano requirement

The user explicitly said:

- no pianos

So for this sprint:

- do not add piano-specific strategy
- do not build new features around piano timbre
- if a track is currently called `HARMONY_PIANO_MIDI`, treat it as an editable harmonic MIDI track, not as a reason to force piano sound

### Harmonic role is still required

Even with no piano:

- harmonic MIDI support remains required
- the editing workflow must be able to add MIDI notes across the arrangement

The point is:

- non-piano harmonic editing
- not no-harmony

---

## 5. Code Review Constraints

Kimi must follow these review-grade rules.

### 5.1 Do not just expose wrappers blindly

Each new MCP tool must:

- validate parameters
- call the correct runtime command
- return useful JSON or readable text
- handle `track_type` correctly where relevant

### 5.2 Do not break generation while adding editing

This sprint is about adding editing capability.

Do not regress:

- `generate_track`
- `generate_song`
- runtime truth
- manifest persistence

### 5.3 Do not build project editing only around manifests

Real editing must inspect the actual open project state:

- tracks
- clips
- devices

Not only the stored manifest.

### 5.4 Do not overtrust ALS XML for mutable runtime truth

The `.als` file is useful for audit.

But live editing truth must come from:

- the loaded Live set via MCP tools

That means the new tools must become the primary source of truth after opening the project.

---

## 6. Required Implementation Order

Kimi must implement in this order:

1. public inspection tools
2. public track/device edit tools
3. public arrangement MIDI edit tools
4. one project-audit tool
5. benchmark validation against `song.als`

Do not start from a giant “smart edit” tool before the primitives exist.

---

## 7. Required Tests

Kimi must add tests for the new MCP-facing layer.

Minimum coverage:

### Tool exposure tests

Verify the server exports the new tools:

- clip inspection
- device inspection
- track control
- arrangement edit

### Parameter validation tests

Verify bad indexes and bad values fail cleanly.

### Runtime command wiring tests

Verify each MCP tool sends the correct command payload to Ableton.

### Project-edit benchmark tests

At least one test must cover the logic needed for:

- detecting an empty harmonic MIDI track with an instrument loaded
- identifying arrangement holes worth filling

---

## 8. Required Validation For The Report

The next validation report is invalid unless it includes:

### New tools

- exact list of new MCP editing tools added

### Evidence

- proof they are callable from OpenCode
- proof they work on the open `song.als` project

### Benchmark actions

At minimum, Kimi must demonstrate:

1. inspect clip data on a real track from `song.als`
2. inspect devices on `HARMONY_PIANO_MIDI`
3. create or extend arrangement MIDI on that track or another chosen harmonic track

### Honesty requirement

If the tools are exposed but not yet pleasant to use, say so.

Do not call the editing workflow “done” if it is still only low-level and awkward.

---

## 9. What Success Looks Like

At the end of this sprint, OpenCode/Kimi should be able to do this on a loaded project:

1. inspect tracks
2. inspect clips
3. inspect devices
4. mute/solo/arm tracks if needed
5. change pan/sends/device parameters
6. create an arrangement MIDI clip
7. add notes to it
8. duplicate or extend arrangement material

That is the minimum viable “edit existing song” workflow.

If those steps work, we can stop treating every problem as “generate again”.

---

## 10. Non-Goals

Do not spend this sprint on:

- new genre generation features
- new piano-forward logic
- more reference-remake tuning
- cosmetic report polish

This sprint is about giving the MCP real editing hands.
