This commit is contained in:
2026-03-06 15:05:36 -05:00
parent 4599e38df2
commit 3ce6a2ec8a
2 changed files with 61 additions and 31 deletions

View File

@@ -2,36 +2,62 @@
## Phase 1: Centralized Path Resolver
- [ ] Task: Create path resolver module
- WHERE: src/orchestrator_pm.py or new module
- WHAT: Single function to get conductor path
- HOW: Check env var, then config, then default
- WHERE: src/orchestrator_pm.py or new module (src/paths.py)
- WHAT: Single function to get all configurable paths
- HOW: Check env vars, then config, then defaults
- SAFETY: Immutable after first call
## Phase 2: Update Modules
## Phase 2: Define Config Schema
- [ ] Task: Define path configuration schema
- WHERE: src/paths.py
- WHAT: Define default paths and env var names
- HOW: Constants for each path
- SAFETY: None
## Phase 3: Update Orchestrator
- [ ] Task: Update orchestrator_pm.py
- WHERE: src/orchestrator_pm.py
- WHAT: Use centralized resolver
- HOW: Import and use get_conductor_path()
- HOW: Import and use get_path('conductor')
- [ ] Task: Update project_manager.py
- WHERE: src/project_manager.py
- WHAT: Use centralized path
- HOW: Import from orchestrator_pm
- WHAT: Use centralized paths
- HOW: Import from paths module
## Phase 4: Update App Controller
- [ ] Task: Update app_controller.py
- WHERE: src/app_controller.py
- WHAT: Use centralized path
- HOW: Import from orchestrator_pm
- WHAT: Use paths for logs, conductor
- HOW: Import from paths module
## Phase 3: Config Support
- [ ] Task: Add to config.toml
## Phase 5: Update GUI
- [ ] Task: Update gui_2.py
- WHERE: src/gui_2.py
- WHAT: Use centralized paths
- HOW: Import from paths module
## Phase 6: Update Other Modules
- [ ] Task: Update aggregate.py
- WHERE: src/aggregate.py
- WHAT: Use config path from resolver
- HOW: Import from paths module
- [ ] Task: Update session_logger.py
- WHERE: src/session_logger.py
- WHAT: Use scripts_dir from resolver
- HOW: Import from paths module
- [ ] Task: Update other files with hardcoded paths
## Phase 7: Config & Env Vars
- [ ] Task: Add paths to config.toml
- WHERE: config.toml
- WHAT: conductor_path option
- HOW: toml key
- [ ] Task: Add env var support
- WHERE: src/orchestrator_pm.py
- WHAT: CONDUCTOR_DIR env var
- HOW: os.environ.get()
- WHAT: Add path configuration section
- HOW: toml section [paths]
- [ ] Task: Document environment variables
- WHERE: docs/ or README
- WHAT: Document all path env vars
## Phase 4: Verification
- [ ] Task: Test with different paths
## Phase 8: Verification
- [ ] Task: Test with custom paths
- [ ] Task: Test default behavior
- [ ] Task: Run test suite
- [ ] Task: Conductor - Phase Verification

View File

@@ -1,32 +1,36 @@
# Track Specification: Conductor Path Configuration (conductor_path_configurable_20260306)
## Overview
Eliminate hardcoded paths in the application. Make the conductor directory path configurable via config.toml or environment variable, allowing the running app to use a different directory from the development tracks.
Eliminate all hardcoded paths in the application. Make directory paths configurable via config.toml or environment variables, allowing the running app to use different directories from development setup.
## Current State Audit
### Already Implemented
- CONDUCTOR_PATH in orchestrator_pm.py is hardcoded to Path(\"conductor\")
- project_manager.py uses Path(base_dir) / \"conductor\" / \"tracks\"
- app_controller.py hardcodes \"conductor\" and \"conductor/tracks\"
- logs/sessions hardcoded in app_controller.py, gui_2.py
- config.toml hardcoded in aggregate.py (but models.py has SLOP_CONFIG env var)
- scripts/generated hardcoded in session_logger.py
### Gaps to Fill
- No config-based path override
- No environment variable support
- No config-based path overrides
- No environment variable support for most paths
## Goals
- Make conductor path configurable
- Support config.toml and environment variable
- Backward compatible (default to ./conductor)
- Make all directory paths configurable
- Support config.toml and environment variables
- Backward compatible (defaults remain)
- Centralized path resolver
## Functional Requirements
- Config file support in config.toml
- Environment variable support (CONDUCTOR_DIR)
- Config file support in config.toml for all paths
- Environment variable support for all paths
- Runtime path resolution
- All modules use centralized path resolver
## Acceptance Criteria
- [ ] config.toml has conductor_path option
- [ ] CONDUCTOR_DIR env var works
- [ ] Default remains ./conductor
- [ ] All modules use resolved path
- [ ] config.toml has options for: conductor_dir, logs_dir, config_file, scripts_dir
- [ ] Environment variables work: CONDUCTOR_DIR, LOGS_DIR, SLOP_CONFIG, SCRIPTS_DIR
- [ ] Default paths remain unchanged
- [ ] All modules use resolved paths
- [ ] Backward compatible