5 Commits
Author SHA1 Message Date
mrcharles baf4088059 ERCOT daily risk-intelligence brief (#826)
ercot-brief.sh: LZ_SOUTH RTM now + 24h peak -> GREEN/WATCH/ELEVATED/CRITICAL
risk level + actions (precharge battery, defer class-3 batch, RTW
counterfactual flag) + TSV history. Rationale: Base Power stays the retail
counterparty; ISO signals are risk intelligence, not an export market.

https://projects.knownelement.com/issues/826#note-7
2026-09-06 15:02:15 -05:00
mrcharles 0693739d70 ONCOR real-time arbitrage decision tool + economics doc (#826)
oncor-arbitrage.sh: LZ_SOUTH RTM price (pluggable source) -> best-action
verdict (serve load vs export to Base flat 4c vs RTW counterfactual);
JSON out for the KNELPerf batch gate. Verified with override prices.

https://projects.knownelement.com/issues/826#note-5
2026-09-06 14:58:45 -05:00
mrcharles b3effbe044 Fix math review findings (#826 Redmine note follows)
- constants drift: CURRENT_MONTHLY_BILL 301.08->264.47, CURRENT_ANNUAL_CONSUMPTION 23952->22614 (15-month billing table is truth)
- plan header: ROI 9.1 -> 10.2 yrs (matches table); 14% -> 26.6% kWh / 12.7% bill offset
- Dockerfile entrypoint ran DEPRECATED solar_estimate.py (400W panels); now runs the current bash analyzer on alpine
- scenario payback caveat: fixed $4,100 cost across array sizes = optimistic ceilings

https://projects.knownelement.com/issues/826#note-1
2026-09-06 14:02:12 -05:00
Charles N Wyble 0bbd0fb484 feat: add production readiness improvements for AGPLv3 release
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>
2026-02-27 17:10:22 -05:00
Charles N Wyble 400764a9ff feat: initial project setup with bash-based NREL analysis
- 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>
2026-02-27 16:45:41 -05:00