201 lines
5.1 KiB
Markdown
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.
|
|
```
|