# Track Specification: Project-Specific Conductor Directory

## Overview

Make the conductor directory per-project instead of global. Each project TOML can specify its own `conductor_dir` path, allowing separate track/state management per project. This enables using Manual Slop with multiple independent projects without track/ticket cross-pollution.

## Current State Audit

### Already Implemented
- `src/paths.py`: Global path resolution via env vars and config.toml
- `paths.get_conductor_dir()`: Returns global conductor directory
- `config.toml [paths]` section: Global path overrides

### Gaps to Fill
- No per-project conductor directory support
- Tracks are always loaded from global conductor dir
- No way to isolate tracks between projects

## Goals

1. Allow projects to specify custom conductor directory in their TOML
2. Load track state from project-specific conductor dir
3. Create new tracks in project-specific directory
4. Maintain backward compatibility with global conductor

## Functional Requirements

### Per-Project Conductor Path
| Project TOML Key | Description | Default |
|-----------------|-------------|---------|
| `conductor.dir` | Path to conductor directory | `"conductor"` (relative to project root) |

### Example Project TOML
```toml
[project]
name = "MyCProject"
path = "/path/to/my-c-project"

[conductor]
# This project's tracks will be in /path/to/my-c-project/my_tracks/
dir = "my_tracks"
```

### Path Resolution Order
1. Project TOML `[conductor].dir` (project-specific)
2. Environment variable `SLOP_CONDUCTOR_DIR` (global override)
3. Config.toml `[paths].conductor_dir` (global default)
4. Fallback to `"conductor"`

### API Changes
- `paths.get_conductor_dir(project_path: str = None) -> Path`: Add optional project_path param
- `paths.get_tracks_dir(project_path: str = None) -> Path`: Returns project-specific tracks dir
- `paths.get_track_state_dir(track_id: str, project_path: str = None) -> Path`

### Integration Points
- `project_manager.py`: Pass project_path to path functions when saving/loading tracks
- `app_controller.py`: Use active project's conductor dir for track operations

## Architecture Reference

- **Existing paths.py**: `src/paths.py` - current global path resolution
- **Project loading**: `project_manager.py:load_project()` - loads project TOML
- **Active project**: `app_controller.py:active_project_path` - current project

## Out of Scope
- GUI path configuration (separate track)
- Runtime path switching (paths resolved at project load)
- Migrating existing tracks between projects

## Relationship to Track 0
This extends conductor_path_configurable_20260306:
- Track 0: Global path configuration (done/impro track: Per-projectved)
- This path override
