Read this checklist before using an AI coding assistant on the project. It
complements docs/AI_Codex_Guide.md by describing the workflow expectations,
safety rails, and formatting rules for automated contributions.
- Re-read
docs/wireframes.mdand confirm the screen or component you plan to modify. - Scan
docs/TASKS.mdto pick the highest-priority open task that matches your scope. - Inspect source files to understand naming conventions, namespaces, and helper patterns.
- Record open questions in the pull request description or inline TODOs so a human reviewer can resolve them.
- Modify only the files required for the chosen task; avoid shotgun refactors.
- Prefer extending
custom/modules over editing vendor code inapp/unless the task explicitly requires it. - Maintain optimistic UI interactions with clear rollback paths when publishing MQTT commands.
- Reuse theme tokens from
ui_theme.hand shared components fromcustom/ui/to keep screens consistent. - When adding new assets or configuration values, update the relevant
documentation (
docs/ASSETS.md,docs/ARCHITECTURE.md, orREADME.md).
- Run
idf.py buildbefore finalizing a change. Resolve compiler warnings rather than silencing them. - Run
bash scripts/preflight.shand ensure it exits 0 before opening a PR. - Execute
idf.py lintwhen modifying integration metadata or component manifests. - Run
npx markdownlint docsafter editing Markdown. Fix or justify any violations in the PR notes. - Capture on-device footage or simulator screenshots for UI-heavy changes and attach them to the PR.
- Use Conventional Commit messages as described in the repository
AGENTS.md. - Keep commits focused. If the AI generates a broad refactor, split the work manually before submitting a PR.
- Document limitations or follow-up ideas in the PR description under a "Next steps" heading.
- If a task conflicts with performance limits or design tokens, update the docs first, then land the code change in a follow-up PR.
- When encountering unclear MQTT payloads or stream behaviors, extend the
contract in
docs/mqtt_contract.mdand flag the ambiguity in the roadmap. - Avoid introducing new third-party dependencies without explicit human approval.