diff --git a/.claude/rules/node-red-flow-layout.md b/.claude/rules/node-red-flow-layout.md index b80ba3d..01e147d 100644 --- a/.claude/rules/node-red-flow-layout.md +++ b/.claude/rules/node-red-flow-layout.md @@ -203,8 +203,13 @@ If you only fill the top-level fields, `payload_type=json` is silently treated a ✅ Do: -- Generate flows from a Python builder (`build_flow.py`) — it's the source of truth. -- Use deterministic IDs (`pump_a`, `meas_pump_a_u`, `lin_demand_to_mgc`) — reproducible diffs across regenerations. +- **Hand-author per-node `examples/` flows — they are one-offs, not generated.** + The JSON is the source of truth; edit it directly and validate with `flow-lint`. + Do **not** add a per-node flow generator: it rots out of sync, silently emits + lint-failing flows, and costs more to maintain than the one-off it produces. + (Scripting layout *may* still pay off for a large, frequently-rebuilt production + dashboard — but that is an explicit, owned tool, never a per-node example.) +- Use stable, readable IDs (`pump_a`, `meas_pump_a_u`, `lin_demand_to_mgc`) so diffs stay legible. - Tag every channel name with `cmd:` / `evt:` / `setup:`. - Comment every section, even short ones. - Verify trends with a `ui-chart` of synthetic data first, before plumbing real data through. diff --git a/nodes/pumpingStation b/nodes/pumpingStation index 089a7fa..177a37e 160000 --- a/nodes/pumpingStation +++ b/nodes/pumpingStation @@ -1 +1 @@ -Subproject commit 089a7fa2c44799b675af9f7546f9423b79b9c371 +Subproject commit 177a37e15ce58db0b736cd19de15bf96a45f9260