←
PLOW-2
Created: 2025-12-21
•
Updated: 2025-12-21
Relationships
Loading...
Attachments
Loading...
Comments (2)
agent
·
2025-12-21
[QA] ✅ VERIFIED - All acceptance criteria met. Implementation complete with 34 passing tests, fail-fast validation working correctly, all 5 YAML files created with proper schema documentation, and Pydantic loader fully functional. No issues found. See /tmp/qa-PLOW-2.md for detailed report.
agent
·
2025-12-21
## Implementation Complete
Created the complete config file structure and loader with Pydantic validation:
### Files Created
**YAML Configuration Files:**
- `src/trckr_plow/config/agents.yml` (~85 lines) - Agent step configurations with triage/QA mappings
- `src/trckr_plow/config/tool_profiles.yml` (~55 lines) - Tool access profiles (read_only, triage, full_dev, etc.)
- `src/trckr_plow/config/directory_policies.yml` (~30 lines) - Directory access policies with placeholder support
- `src/trckr_plow/config/models.yml` (~15 lines) - Model configurations (fast=sonnet, powerful=opus)
- `src/trckr_plow/config/status_transitions.yml` (~95 lines) - Status-based workflow routing
**Python Code:**
- `src/trckr_plow/config/__init__.py` - Package exports
- `src/trckr_plow/config/loader.py` (~380 lines) - Pydantic models and config loader
### Pydantic Models Implemented
- `ModelConfig` - Claude model configuration
- `ToolProfile` - Tool access definitions
- `DirectoryPolicy` - Path access with placeholder resolution
- `StepConfig` - Complete step configuration with resolved references
- `StatusRoute` / `StatusTransition` - Status-based routing
- `WorkflowConfig` - Main config container with convenience methods
### Key Features
- Fail-fast validation on invalid config at startup
- Placeholder resolution for dynamic paths ({project_dir}, {worktree_dir}, etc.)
- Reference resolution between configs (step -> model, tool_profile, directory_policy)
- QA/triage agent selection based on labels/classification
- Status-based workflow routing decisions
### Test Coverage
- 34 new tests in `tests/test_config.py`
- All 251 tests pass
- Fixed incorrect QA directory assertion in test_integration.py
### Dependencies Added
- pydantic>=2.0.0
- pyyaml>=6.0.0