Files
2026-05-03 19:15:46 +02:00

201 lines
5.1 KiB
Markdown

# Codex Prompt Templates
Use these prompts step by step. Do not ask Codex to build the whole application in one pass.
## Prompt 1: Audit Existing Codebase
```text
Audit the existing codebase against the specification files in this repository.
Focus on the distribution board circuit list editor.
Do not write code yet.
Produce a concise audit report with:
1. current data model summary
2. current UI/editor behavior summary
3. current project device handling
4. conflicts with the new specification
5. modules/files that can be kept
6. modules/files that should be refactored
7. modules/files that should be replaced
8. recommended implementation plan
Important target model:
- a circuit is not the same thing as one device row
- a circuit contains zero, one or multiple device rows
- sections are configurable grouping separators
- equipment identifiers are stable and never automatically renumbered
- protection and cable data belong to the circuit, not to individual devices
Wait for confirmation before making code changes.
```
## Prompt 2: Implement Core Model
```text
Implement Phase 1 only.
Goal:
Create the core circuit list model and basic table display according to the specification.
Required:
- sections
- circuits
- circuit device rows
- project devices
- manual rows
- reserve circuits
- row total power calculation
- circuit total power calculation
- equipment identifier generation as highest existing number + 1
- no automatic renumbering
Do not implement advanced drag-and-drop yet.
Do not implement sync dialog yet.
Do not implement future cable/protection sizing yet.
Before coding, propose the files you will change and the migration/data-model changes.
```
## Prompt 3: Spreadsheet-Like Editing
```text
Implement Phase 2 only.
Goal:
Make the circuit list table spreadsheet-like.
Required:
- static text cells by default
- inline editing on double click, Enter, typing and F2
- Enter confirms edit
- Escape cancels edit
- Tab and Shift+Tab navigate editable cells
- Arrow keys navigate cells when not editing
- Ctrl+Plus inserts a row
- Ctrl+Shift+Plus also inserts a row
- Delete behavior must be safe
- duplicate equipment identifiers must be visually warned
Do not change the domain model unless required.
Do not implement unrelated features.
```
## Prompt 4: Project Device Sidebar and Drag Insert
```text
Implement Phase 3 only.
Goal:
Add the project device sidebar and drag insertion into the circuit list.
Required:
- searchable project device sidebar
- draggable project device items
- drop onto valid section/free placeholder creates a new circuit
- drop onto existing circuit adds the device to that circuit
- inserted row remains linked to the project device
- displayName is prefilled but remains local after insertion
- invalid drop zones must be rejected or require confirmation
- existing equipment identifiers must not change
Do not implement multi-row drag yet.
Do not implement sync dialog yet.
```
## Prompt 5: Drag-and-Drop Restructuring
```text
Implement Phase 4 only.
Goal:
Support restructuring by drag and drop.
Required:
- dragging from circuit handle moves entire circuit
- dragging from device area moves only the device row
- device rows can move between circuits
- device rows can move to the free placeholder to create a new circuit
- moving rows recalculates affected circuit totals
- no automatic renumbering
- visual drop indicator
- valid and invalid drop target feedback
Then add multi-row selection and multi-row drag:
- Ctrl+click
- Shift+click
- selected rows move together
- internal order is preserved
```
## Prompt 6: Filtering, Sorting, Columns
```text
Implement Phase 5 only.
Goal:
Add Excel-like filtering, sorting and column configuration.
Required:
- filter menu per column header
- filter by values present in the column
- sort ascending/descending per column
- sorting works inside sections
- sorting moves complete circuits as blocks
- sorting must not split devices away from their circuit
- sorting must not renumber
- column visibility configuration
- column reorder by drag and drop
- reset default column layout
```
## Prompt 7: Undo / Redo
```text
Implement Phase 6 only.
Goal:
Add undo/redo for structural and destructive operations.
Required undo/redo support:
- insert circuit
- insert device
- delete circuit
- delete device
- move circuit
- move device
- multi-row move
- renumber section
- edit equipment identifier
- edit cell value
- synchronize linked project device fields
- disconnect linked project device
Keep the implementation maintainable.
Do not introduce global state management unless it is justified.
```
## Prompt 8: Linked Device Synchronization
```text
Implement Phase 7 only.
Goal:
Add controlled synchronization from project devices to linked circuit list rows.
Required:
- track linked rows
- track overridden fields
- when editing a project device, show affected linked rows
- show distribution board, circuit identifier and row display name
- show changed fields with old and new values
- displayName excluded by default
- user can apply changes to one, selected or all linked rows
- user can exclude fields
- user can disconnect linked rows
Do not silently overwrite local values.
```