File size: 1,283 Bytes
c39a084
6a714c3
c39a084
6a714c3
c39a084
 
6a714c3
c39a084
6a714c3
d7d0f99
c39a084
 
 
 
d7d0f99
 
c39a084
6a714c3
 
 
 
 
 
 
 
 
b512b22
6a714c3
b512b22
6a714c3
 
 
 
 
b512b22
 
 
 
6a714c3
 
b512b22
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Configuration Guide (Consolidated)

This configuration reference has been intentionally simplified for the hackathon to keep the repository focused for judges and evaluators.

For the end-to-end demo and instructions, see:
- `docs/HACKATHON_SUBMISSION.md`

Advanced usage help is available via the CLI:

```bash
uv run court-scheduler --help
uv run court-scheduler generate --help
uv run court-scheduler simulate --help
uv run court-scheduler workflow --help
```

Note: uv is required for all commands.

### Deprecating Parameters
1. Move to config class first (keep old path working)
2. Add deprecation warning
3. Remove old path after one release cycle

## Validation Rules

All config classes validate in `__post_init__`:
- Value ranges (0 < learning_rate <= 1)
- Type consistency (convert strings to Path)
- Cross-parameter constraints (max_gap >= min_gap)
- Required file existence (rl_agent_path must exist)

## Anti-Patterns

**DON'T**:
- Hardcode magic numbers in algorithms
- Use module-level mutable globals
- Mix domain constants with tunable parameters
- Create "god config" with everything in one class

**DO**:
- Separate by lifecycle and ownership
- Validate early (constructor time)
- Use dataclasses for immutability
- Provide sensible defaults with named presets