Files
EOS/ai/skills/energy-domain/SKILL.md
T
Bobby NoelteandClaude Opus 5.5 dd41e5d57c chore(ai): add agent self-review and a CI check for agent-assisted PRs
Additional changes
Agents write a task plan to .scratch/<branch>/plan.md and self-review with code-review
Agents fix hard violations, report judgement calls and rerun the self-review before every push
Agents declare the review in a Self-review section of the pull request body
Add the ai-self-review workflow and scripts/check_pr_self_review.py for pull requests into main
Detect agents by Assisted-by or Anthropic Co-Authored-By trailers, body markers or the AI box
Fail only on a missing Self-review section or a missing, malformed or stale Reviewed SHA
Note an unticked AI-assisted box and malformed optional lines without failing
Comment on the pull request how to fix a failure and update that one comment on later runs
Show the same report in the job summary and accept Windows line endings in the body
Skip dependabot and release pull requests
Run on pull_request_target with the base branch's script, never pull request code
Add the pull request template: the pr skill's sections plus Checklist and Self-review
Require always valid optimization parameters in the energy-domain skill
Require datetimeutil for date and time handling in new and changed code in AGENTS.md
Require the Assisted-by trailer on agent commits in the commit-messages skill
Add tests for the check in tests/test_ai.py
Add GLOSSARY.md and the agent tracker docs in docs/agents/
Add decision record docs/adr/0001 with an ADR index in the docs toctree
Document the workflow in docs/develop/ai.md and CONTRIBUTING.md
Exclude docs/agents from Sphinx and PyMarkdown and ignore .scratch/
Document cz check instead of make gitlint for commit messages in docs/develop/ai.md

Assisted-by: Claude Code (claude-opus-5-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 15:37:33 +01:00

44 lines
2.0 KiB
Markdown

---
name: energy-domain
description: Use when working on optimization logic, adapters, controllers, device communication, or power/energy units and sign conventions.
---
# Energy Management and Device Integration
- Keep optimization logic separate from device-specific communication where
practical.
- Follow existing adapter and controller interfaces.
- Respect the distinction between long-horizon energy optimization and fast
local device control.
- Handle communication failures, device availability, and invalid measurements
explicitly.
- Avoid introducing cloud dependencies into workflows intended to operate
locally.
- **Preserve existing energy sign conventions, units, and conversion
semantics.** Verify them before changing power, energy, or charging
behavior.
## Optimization parameters are always valid
The preparation of the **optimization parameters** (see `GLOSSARY.md`) always
creates a valid parameter set. It never fails and never cancels an
optimization run. This is a hard rule.
- It covers the whole path from configuration, predictions and measurements to
the parameters handed to an optimizer, for every optimizer (GENETIC,
GENETIC0 and future ones), including device and operating-point parameters.
- Replace an invalid or missing input with a **fallback value**:
1. the configuration field's default,
2. a heuristic only when there is no default or the default does not fit
the operating state (e.g. a charge limit of 0 when charging is
inhibited). For a missing prediction: PV = 0, the last known price
carried forward, the load default.
- Every fallback:
- logs at error level, naming the input and the substitute value,
- never changes the user's configuration (no write-back),
- never invents devices: a device that cannot be resolved is left out or
neutralised, never replaced by a demo device,
- never lets an exception escape from the preparation.
- A parameter set that is still invalid after preparation is a bug: cover the
case with a test and fix the preparation.