This file is the canonical guardrails + pointers for Codex work in this repo.
Project overview
docs/overview.mdREADME.md(end-user docs for release v2.0; may lag behind dev)
Current status
docs/status.md
Ongoing tasks
docs/todo.mdTODO
Setup
docs/setup.md
Architecture
docs/architecture.md
Design contracts (immutable)
docs/design/filtering-contract.mddocs/design/config-flow-contract.mddocs/design/calendar-contract.mddocs/design/sensor-contract.md
Context for Codex
docs/context.mddocs/decisions.mdtest/fixtures/usecases.json(UC catalog)
Legacy references
docs/resume_prompt.txt(legacy backup)docs/design/filtering-design-checkpoint.md(legacy backup)docs/design/filtering-config-flow-design.md(legacy backup)docs/vibe/context.md(legacy, empty)
Project file structure (in-file)
custom_components/skolmat/: Home Assistant integration code.custom_components/skolmat/processors/: optional per-source normalizers.skolmat-card/: Lovelace card submodule.docs/: working docs and design contracts.test/: fixtures and tests (including UC catalog).
Devcontainer model (in-file)
.devcontainer/devcontainer.jsonuses imagehass_dev_image_2025.12.2.- Post-create runs
container setup-project->.devcontainer/setup-project. - Mounts
skolmat-card/into HA configwww/. - Bootstraps HA
.storagefrom.devcontainer/ha_config_bootstrap/.storage. - Ports: 8123 (HA) and 5678 (debugpy).
Generic guardrails (in-file)
- Do not modify design contracts unless explicitly requested.
- Treat
test/fixtures/usecases.jsonas ground truth. All implemented logic should be represented in this file. Suggest updates when neccesary. - Don’t refactor entire architecture without approval.
- Never refactor code outside of the currently discussed scope.
- Only run code generation related to current file / feature.
- Prefer small, reviewable changes; avoid sweeping reformatting.
- Update or add tests when behavior changes; call out gaps explicitly if not possible. Suggest additions/updates to
test/fixtures/usecases.jsonas needed. - When requirements are unclear, pause and ask one question at a time before coding.
- Keep dev docs in
docs/aligned with actual behavior; do not update end-user docs (README.md) unless requested. - Avoid editing legacy backups unless explicitly asked.
- Use UTF-8 when Swedish terms or data require it; do not force ASCII where it harms clarity.
- Log important decisions in
docs/decisions.mdwithout waiting for confirmation.