- Replace Pflugerville with SITER in SVG files
- Remove outdated -k option reference from README
🤖 Generated with [Crush](https://crush.cli.software)
Assisted-by: GLM-5 via Crush <crush@charm.land>
Security:
- Remove -k/--api-key CLI option (prevents process list exposure)
- API key now only accepted via NREL_API_KEY environment variable
Features:
- Add API timeout (30s) and retry logic with exponential backoff
- Add rate limit detection and graceful test skipping
Documentation:
- Add AGPLv3 LICENSE file
- Add CONTRIBUTING.md with development guidelines
- Add CHANGELOG.md following Keep a Changelog format
- Add copyright headers to all source files
Tests:
- Expand test suite from 19 to 52 tests
- Add edge case tests (negative values, boundaries)
- Add input validation tests
- Add financial calculation verification tests
- Add rate limit handling to skip tests gracefully
- Remove skip-on-failure logic - tests now properly fail
All 52 tests pass (19 skipped when API rate limited).
🤖 Generated with [Crush](https://crush.cli.software)
Assisted-by: GLM-5 via Crush <crush@charm.land>
- Add bash script (siter-solar-analysis.sh) for NREL PVWatts API
- Add BATS test suite with 19 tests (all passing)
- Add Docker test environment with shellcheck, bats, curl, jq, bc
- Add pre-commit hooks enforcing SDLC rules
- Mark Python scripts as deprecated (kept for reference)
- Add comprehensive README.md and AGENTS.md documentation
- Add .env.example for configuration template
- Add .gitignore excluding private data (base-bill/, .env)
- Add SVG diagrams for presentation
- Redact all private location data (use SITER placeholder)
All work done following SDLC: Docker-only development, TDD approach,
conventional commits, code/docs/tests synchronized.
Generated with Crush
Assisted-by: GLM-5 via Crush <crush@charm.land>