# Task Breakdown: 001-weather-cli ## 1. Setup [P1] - [ ] Task Setup: `uv init weather-cli && cd weather-cli && uv add httpx click pytest ruff mypy` - [ ] CI: Initialize git repo and commit setup. ## 2. API Key Management [US2] [P1] - [ ] Key verification logic: Throw exception if `WEATHER_API_KEY` is missing from environment. ## 3. Data Entities [US1] [P1] [TDD] - [ ] Write `CityWeather` dataclass with `temp` and `condition`. - [ ] Write tests for entity validation. ## 4. Weather Logic [US1] [US3] [P1] [TDD] - [ ] Implement `WeatherService` using `httpx` to call OpenWeather API. - [ ] Support units (metric/imperial). - [ ] Handle 404/City not found and API errors. - [ ] Write mocked API tests for service with unit coverage. ## 5. CLI Interface [US1] [US3] [P2] - [ ] Implement command line interface using `click`. - [ ] Integrate service and entities. ## 6. Final Polish [P1] - [ ] Verify against `quickstart.md` scenarios. - [ ] Run full test suite with `pytest`. - [ ] Format with `ruff`. - [ ] Final commit.