specs for rewrite
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
# 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.
|
||||
```
|
||||
Reference in New Issue
Block a user