refactor(architecture): unify facade headers and remove unused lcd dependency
This commit is contained in:
13
AGENTS.md
13
AGENTS.md
@@ -13,9 +13,16 @@
|
||||
1. Dependencies are one-way only: `app_composition -> control_plane -> domain -> platform`.
|
||||
2. Lateral direct dependencies are forbidden unless listed in `dependency_whitelist.md`.
|
||||
3. Cross-domain communication must use events or Port interfaces; never include another domain's `internal/*.h`.
|
||||
4. Each component keeps one public header in `include/`; private headers stay in `internal/` via `PRIV_INCLUDE_DIRS`.
|
||||
5. Runtime state must have a single source of truth (SSOT); other modules subscribe/query instead of copying fields.
|
||||
6. Blocking APIs must define timeout and idempotent semantics (no destructive background continuation after caller timeout).
|
||||
4. Each component keeps exactly one public facade header in `include/`; private headers stay in `internal/` via `PRIV_INCLUDE_DIRS`.
|
||||
- Long-term canonical facade headers in this repo:
|
||||
- `platform/include/platform.h`
|
||||
- `domain/include/domain.h`
|
||||
- `control_plane/include/control_plane.h`
|
||||
- `app_composition/include/app_composition.h`
|
||||
5. Upper layers may include only immediate downstream public facade headers; leapfrog includes across multiple layers are forbidden.
|
||||
6. Cross-cutting contracts must have a single declared owner layer and one public declaration point; duplicated declarations across layers are forbidden.
|
||||
7. Runtime state must have a single source of truth (SSOT); orchestration layers should query/subscribe rather than duplicate lower-layer lifecycle or readiness state.
|
||||
8. Blocking APIs must define timeout and idempotent semantics (no destructive background continuation after caller timeout).
|
||||
|
||||
## Build, Flash, and Validation
|
||||
Activate ESP-IDF v5.5.2 before running any `idf.py` command:
|
||||
|
||||
Reference in New Issue
Block a user