nice
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user