- Enabled native execution and nativeSkills in OpenClaw config - Installed and linked core CLI dependencies (things3-cli, grizzly, remindctl, op, etc.) - Deployed macOS-specific skills (Notes, Reminders, Things, TTS, Mission Control) - Hardened node startup script with optimized PATH and daemon configuration - Finalized environment for secure autonomous operation
28 lines
1.0 KiB
Markdown
28 lines
1.0 KiB
Markdown
# Spec: Weather Fetcher CLI
|
|
|
|
**Objective**: A Python CLI tool that fetches current weather for a city using a public API.
|
|
|
|
## User Stories
|
|
|
|
### US1: Fetch current weather [P1]
|
|
As a CLI user, I want to fetch the current temperature and description for a city.
|
|
- **Input**: City name (string).
|
|
- **Output**: JSON or formatted table with "Temperature (C)" and "Condition".
|
|
|
|
### US2: API Key Management [P1]
|
|
As an administrator, I want the tool to read the API key from an environment variable `WEATHER_API_KEY`.
|
|
- **Validation**: Fail with a clear error if the variable is missing.
|
|
|
|
### US3: Units selection [P2]
|
|
As a international user, I want to choose between Metric (Celsius) and Imperial (Fahrenheit) via a flag.
|
|
- **Acceptance Criteria**: `--units metric` or `--units imperial`.
|
|
|
|
## Non-Functional Requirements
|
|
- **Performance**: Response within 2 seconds.
|
|
- **Reliability**: Handle invalid city names gracefully.
|
|
|
|
## Success Criteria
|
|
- [ ] Tool returns weather for "Worms, DE".
|
|
- [ ] Tool fails gracefully for "NonExistentCity".
|
|
- [ ] All tests pass with 80% coverage.
|