mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Documents deleted (pre-implementation or superseded): - `docs/sap-spec/CALCULATOR_DESIGN_SKETCH.md` — pre-implementation design sketch referencing SAP 10.3 PDF. Status field said "sketch only — not implemented" but the calculator IS implemented and the active spec target is SAP 10.2 per ADR-0010. Served its purpose. - `docs/sap-spec/HANDOVER_SECTION_6.md` — §6 handover from when §6 was being built. §6 is now Full (per closed cascade pins). Superseded by HANDOVER_NEXT.md. - `docs/sap-spec/PARITY_FINDINGS.md` — log of MAE/RMSE measurements against 100-cert sample. The project has since moved to strict abs=1e-4 per-line-ref pins on 6 deterministic test vectors; MAE/ RMSE on a random sample doesn't carry information value any more. Superseded by the cascade pin scoreboard in HANDOVER_NEXT.md. - `docs/sap-spec/SPEC_COVERAGE.md` — coverage map with status table per-section. Stale: said §3 "Full (non-RR)" but RR detailed is implemented; said §4 "Table 3c pending" but Table 3c landed in slices 6-7; said §14 CO2/primary energy partial — current state lives in HANDOVER_NEXT.md cascade pin scoreboard. Maintenance burden of keeping a static status table in sync with reality made it net-negative. `packages/domain/src/domain/sap/README.md` updates: - Spec reference repointed to SAP 10.2 (14-03-2025) per ADR-0010 (was sap-10-3-full-specification-2026-01-13.pdf). - Added validation contract section pointing to test_section_ cascade_pins.py + test_e2e_elmhurst_sap_score.py with the abs=1e-4 rule. - Window lodgement section: documented per-window u_value path (slice 22) instead of legacy single-avg-U. - §3 "currently only checks invariants" claim removed — all four §3 aggregates pinned at abs=1e-4. - Room-in-roof "one big known gap" claim removed — §3.10 detailed surfaces implemented across slices 13/16/23. U=0.86 external gable variant flagged as the remaining open item. - "Worksheet lines to capture" guidance points at the cascade pin approach + capturing every line through §12. Also added §A.4 to HANDOVER_NEXT.md: the user prefers the fixture × line-ref matrix format for scoreboard reporting (with ✓ for within abs=1e-4 or numeric Δ for finer granularity). Following sections renumbered A.5/A.6. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| domain | ||
| fetchers | ||
| repos | ||
| utils | ||
| README.md | ||
Shared packages
Workspace packages consumed by services/*. Each package is its own Python distribution with its own pyproject.toml; services import via the workspace dependency mechanism ({ workspace = true }).
| Package | Purpose |
|---|---|
domain/ |
Shared domain types — Property, BaselinePerformance, Plan, Scenario, EpcPropertyData, etc. No persistence, no IO, no business logic. |
repos/ |
Persistence layer — one repo per aggregate. Owns the SQL. Depends on domain. |
fetchers/ |
External API clients (gov EPC, Ofgem, Google Solar, etc.). Depend on domain for response shapes. |
utils/ |
Cross-cutting infra — logging, S3, CloudWatch URL builders, SQS task helpers. |
Adding a new shared package
Only when a real second consumer materialises. Don't pre-shatter (repos-epc, repos-property, ...) — split when a deployment needs to drop a dep, not before.
See ../ara_backend_design.md §11 for the broader monorepo layout and ../CONTEXT.md for the domain glossary that names the types living in domain/.