machineGroupControl template (group-level only) #40

Open
opened 2026-05-26 15:13:01 +00:00 by vps1_gitea_admin · 1 comment

Type: slice

Depends on: #39

Estimate: M (1–2 days)

Slice — layers touched

templates (machineGroupControl.json) → composer (already handles via no-data-duplication slice) → integration test.

Context

Implements the MGC slice of PRD F-5. The composer rule is already in place from the no-data-duplication slice; this slice authors the template.

Scope

  • Author src/templates/machineGroupControl.json with one row: group control mode, total demand, Σ delivered flow, η-group, relDistFromPeak (per the BEP metrics in project memory).
  • No pump-level panels — those come from each rotatingMachine child.
  • Update example flow to demo MGC + 3 pumps.

Out of scope

  • Ncog semantic fix (per project memory project_mgc_bep_metrics_semantics.md) — not part of this PRD.

Acceptance criteria

  • MGC + 3 pumps → one MGC row at top with group panels, three pump rows below.
  • No metric appears twice (visual inspection + composer test).
**Type:** slice **Depends on:** #39 **Estimate:** M (1–2 days) ## Slice — layers touched templates (`machineGroupControl.json`) → composer (already handles via no-data-duplication slice) → integration test. ## Context Implements the MGC slice of PRD F-5. The composer rule is already in place from the no-data-duplication slice; this slice authors the template. ## Scope - Author `src/templates/machineGroupControl.json` with one row: group control mode, total demand, Σ delivered flow, η-group, relDistFromPeak (per the BEP metrics in project memory). - No pump-level panels — those come from each rotatingMachine child. - Update example flow to demo MGC + 3 pumps. ## Out of scope - Ncog semantic fix (per project memory `project_mgc_bep_metrics_semantics.md`) — not part of this PRD. ## Acceptance criteria - [ ] MGC + 3 pumps → one MGC row at top with group panels, three pump rows below. - [ ] No metric appears twice (visual inspection + composer test).
Author
Owner

Slice #40 shipped on branch slice/40-mgc-template

Branches: dashboardAPI · EVOLV

What landed

  • config/machineGroup.json: every non-row panel annotated with meta.emittedFields (mode, scaling, abs/relDistFromPeak, flow.total/group, power.total/group). Per-pump fields (ctrl, state, runtime, pressure, temperature) deliberately absent — they live on rotatingMachine children.
  • Timeseries panels in MGC carry the byRegexp dashed-bounds overrides for .min$/.max$ (consistent with #38).
  • 4 unit tests: no per-pump fields, annotation coverage, dashed-overrides presence, composer dedup engagement.

Acceptance criteria (status)

  • MGC + N pumps → MGC row at top with group-level panels; per-pump panels appear on each pump's own dashboard (cross-linked).
  • No metric appears twice — verified by the composer dedup test (MGC composer dedups parent panels covered by pump children).
  • Ncog semantic fix explicitly NOT in scope per PRD §10.

Closes #40.

## Slice #40 shipped on branch `slice/40-mgc-template` Branches: [`dashboardAPI`](https://gitea.wbd-rd.nl/RnD/dashboardAPI/src/branch/slice/40-mgc-template) · [`EVOLV`](https://gitea.wbd-rd.nl/RnD/EVOLV/src/branch/slice/40-mgc-template) ### What landed - `config/machineGroup.json`: every non-row panel annotated with `meta.emittedFields` (mode, scaling, abs/relDistFromPeak, flow.total/group, power.total/group). Per-pump fields (ctrl, state, runtime, pressure, temperature) deliberately absent — they live on rotatingMachine children. - Timeseries panels in MGC carry the `byRegexp` dashed-bounds overrides for `.min$`/`.max$` (consistent with #38). - 4 unit tests: no per-pump fields, annotation coverage, dashed-overrides presence, composer dedup engagement. ### Acceptance criteria (status) - [x] MGC + N pumps → MGC row at top with group-level panels; per-pump panels appear on each pump's own dashboard (cross-linked). - [x] No metric appears twice — verified by the composer dedup test (`MGC composer dedups parent panels covered by pump children`). - [x] Ncog semantic fix explicitly NOT in scope per PRD §10. Closes #40.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RnD/EVOLV#40