# SupportOps Arena - Task Management ## Project Overview Building an OpenEnv-compliant RL environment for enterprise IT support simulation. --- ## Phase 1: Project Foundation & Structure **Status**: ✅ Complete ### Tasks: - [x] Create directory structure (env/, adversary/, graders/, baseline/, tests/, app/) - [x] Setup requirements.txt with all dependencies - [x] Create .env.example file - [x] Setup basic __init__.py files --- ## Phase 2: Core Pydantic Models **Status**: ✅ Complete ### Tasks: - [x] Create env/state.py with all Pydantic v2 models - [x] Define enums (NetworkStatus, VPNStatus, AuthStatus, etc.) - [x] Define sub-models (UserContext, LogEntry, ActionRecord) - [x] Define core models (EnvObservation, HiddenState, EnvState, StepResult) --- ## Phase 3: Action System **Status**: ⏳ Pending ### Tasks: - [ ] Create env/actions.py with ActionType enum (all 15 actions) - [ ] Define ActionMetadata dataclass - [ ] Create ACTION_METADATA dictionary with all action specifications --- ## Phase 4: Scenarios & Task Definitions **Status**: ⏳ Pending ### Tasks: - [ ] Create env/scenarios.py with TicketGenerator class - [ ] Define TASK_EASY_ROOT_CAUSES (6+ scenarios) - [ ] Define TASK_MEDIUM_ROOT_CAUSES (6+ scenarios) - [ ] Define TASK_HARD_ROOT_CAUSES (6+ scenarios) - [ ] Implement ticket generation logic with noise/misleading entries --- ## Phase 5: Rewards System **Status**: ⏳ Pending ### Tasks: - [ ] Create env/rewards.py with REWARD_EVENTS dictionary - [ ] Implement RewardCalculator class - [ ] Implement reward calculation logic with breakdown - [ ] Add normalization logic for episode scores --- ## Phase 6: State Machine & Transitions **Status**: ⏳ Pending ### Tasks: - [ ] Create env/transitions.py with StateMachine class - [ ] Implement transition() method with all precondition rules - [ ] Implement observation updates for each action type - [ ] Add noise model for inspect_logs - [ ] Add escalation unlock logic --- ## Phase 7: Core Environment **Status**: ⏳ Pending ### Tasks: - [ ] Create env/environment.py with SupportOpsArena class - [ ] Implement async reset() method - [ ] Implement async step() method with full logic - [ ] Implement async state() method - [ ] Add episode termination logic - [ ] Integrate with all other modules --- ## Phase 8: Adaptive Adversary **Status**: ⏳ Pending ### Tasks: - [ ] Create adversary/policy_tracker.py with PolicyTracker class - [ ] Create adversary/adversary.py with AdaptiveAdversary class - [ ] Implement policy weak-point detection - [ ] Implement sampling weight adjustment - [ ] Add cross-episode tracking --- ## Phase 9: Grading System **Status**: ⏳ Pending ### Tasks: - [ ] Create graders/programmatic.py with ProgrammaticGrader - [ ] Create graders/llm_grader.py with LLMGrader (async) - [ ] Create graders/adversarial_grader.py with AdversarialGrader - [ ] Implement grading logic for all three types - [ ] Add LLM-based quality assessment --- ## Phase 10: Baseline Agent **Status**: ⏳ Pending ### Tasks: - [ ] Create baseline/baseline_agent.py with BaselineAgent class - [ ] Implement rule-based heuristic logic - [ ] Add support for all action types - [ ] Implement diagnostic → remediation flow --- ## Phase 11: FastAPI Server **Status**: ⏳ Pending ### Tasks: - [ ] Create app/server.py with FastAPI app - [ ] Implement /api/openenv/v1/env/reset endpoint - [ ] Implement /api/openenv/v1/env/step endpoint - [ ] Implement /api/openenv/v1/env/state endpoint (auth required) - [ ] Implement /api/openenv/v1/metrics endpoint - [ ] Add health check endpoint /health - [ ] Add static file serving for frontend --- ## Phase 12: Frontend Dashboard **Status**: ⏳ Pending ### Tasks: - [ ] Create app/static/index.html - [ ] Implement episode controls UI - [ ] Implement live observation display - [ ] Implement action history table - [ ] Implement reward tracking chart - [ ] Add metrics visualization - [ ] Apply glassmorphism design system --- ## Phase 13: Configuration Files **Status**: ⏳ Pending ### Tasks: - [ ] Create openenv.yaml with full metadata - [ ] Create Dockerfile (multi-stage if needed) - [ ] Verify Docker build and run commands --- ## Phase 14: Inference Script **Status**: ⏳ Pending ### Tasks: - [ ] Create inference.py at root level - [ ] Implement episode runner logic - [ ] Add metric calculation and reporting - [ ] Support multiple episodes with different seeds --- ## Phase 15: Testing Suite **Status**: ⏳ Pending ### Tasks: - [ ] Create tests/conftest.py with fixtures - [ ] Create tests/test_env.py with environment tests - [ ] Create tests/test_graders.py with grader tests - [ ] Create tests/test_transitions.py with state machine tests - [ ] Create tests/test_adversary.py with adversary tests - [ ] Ensure all tests pass with pytest --- ## Phase 16: Documentation **Status**: ⏳ Pending ### Tasks: - [ ] Create comprehensive README.md - [ ] Add quickstart guide - [ ] Document API endpoints - [ ] Add task examples with difficulty levels - [ ] Include environment details and metrics - [ ] Add troubleshooting section --- ## Phase 17: Final Validation **Status**: ⏳ Pending ### Tasks: - [ ] Run full test suite - [ ] Test Docker build and deployment - [ ] Verify all endpoints work - [ ] Test baseline agent performance - [ ] Validate OpenEnv compliance - [ ] Check Hugging Face Spaces compatibility - [ ] Complete pre-submission checklist --- ## Notes - Follow PRD.md strictly for all specifications - Use Pydantic v2 syntax exclusively - All async code properly implemented - No hardcoded credentials - Proper error handling throughout