Document protected circuit groups

This commit is contained in:
2026-07-31 08:06:10 +02:00
parent ab989cc637
commit 7c8d4a7ddf
9 changed files with 144 additions and 59 deletions
@@ -2,10 +2,11 @@
## Status
This document defines the agreed target behavior for distribution-board
components, protected circuit groups and circuit protection devices. Phase A
and the relational Phase-B1 foundation are implemented; later sections remain
requirements and are not proof of runtime or editor support.
This document records the agreed and implemented behavior for
distribution-board components, protected circuit groups and circuit
protection devices. Delivery phases A through E are complete. Phase F retains
the final GUI checklist; the current runtime paths are documented in
`docs/current-architecture.md`.
Full rule-based protection and cable sizing is deliberately deferred. This
phase establishes the structure and manually selected technical values that a
@@ -739,12 +740,7 @@ Acceptance:
### E. Editor Projection and Editing
Status: In progress. The complete tree read model E1, pure structural
projection E2a, grid rendering E2b and mutable component editing E3a are
complete. Basic group management E3b1 is also complete. Circuit-protection
editing now has its persistent E3b2a command boundary; insertion defaults and
the editor modal are complete in E3b2b. Structural drag/renumber/delete
workflows remain pending.
Status: Complete.
- render fixed header components
- render group components and circuit blocks
@@ -777,8 +773,8 @@ Implemented in E1/E2a/E2b/E3a:
category's highest existing number plus one and its prefix is generated
- group editing changes only the display name; category, number, prefix and
child BMKs remain stable
- an exactly empty group can be removed through the persistent group command;
populated deletion stays disabled until the dedicated warning UI is present
- an exactly empty group can be removed through the compact persistent group
command
- `circuit-protection.update` inserts or updates one validated 1:1 protection
snapshot, rejects stale state and preserves exact persistent Undo/Redo
- user commands cannot remove circuit protection; a nullable target exists
@@ -791,6 +787,15 @@ Implemented in E1/E2a/E2b/E3a:
the old flat protection columns now project the new 1:1 data read-only
- group controls move a group only to the adjacent peer of the same category;
the complete list order is one persistent command and no number or BMK changes
- explicit category-wide group renumbering follows the visible persisted group
order, updates every affected prefix and child BMK atomically and preserves
outgoing-circuit suffixes
- dragging one circuit into another group of the same category moves the
complete circuit and assigns the highest target suffix plus one; same-group
multi-circuit drag remains a pure reorder
- populated-group deletion shows the affected circuit, device-row and group
protection counts before sending the complete subtree to the guarded
delete/restore command
Acceptance:
@@ -801,8 +806,12 @@ Acceptance:
### F. Documentation and Full Verification
Status: Documentation and automated verification complete; GUI checklist
pending.
- update current architecture, API and interaction documentation
- update demo/sample data
- update the safe local demo-data instructions; no versioned customer-like
seed data is introduced
- run focused domain and transaction tests
- run the complete required test, build and type-check suite
- perform the agreed GUI test checklist
@@ -830,14 +839,15 @@ Acceptance:
- Snapshot incompatibility:
version payloads and test every supported upgrade path.
## Open Implementation Decisions
## Resolved Implementation Decisions
These decisions may be resolved during the relevant delivery phase without
changing the agreed domain behavior:
- exact relational implementation of the shared BMK ownership boundary
- presentation of group ownership through indentation, headings or a column
- filter behavior for structural component rows
- a trigger-maintained circuit-list registry enforces shared BMK uniqueness
across circuits and distribution-board components
- group headings and full-width structural rows show ownership without adding
a permanent group column
- structural component rows remain outside editable-cell filtering and
spreadsheet navigation; circuit filtering continues to preserve complete
circuit blocks
- explicit UI for converting retained legacy identifiers to grouped numbering
- whether fixed header components become editable beyond name and BMK in this
phase