name: eegprep-feature-development description: Develop new EEGPrep features end to end with EEGLAB parity, AGENTS.md compliance, planning, implementation, tests, GUI visual parity, GUI user-flow QA, review, and PR creation. Use when a user asks Codex to build or port an EEGPrep feature, especially pop_* functions, GUI components, or EEGLAB-parity workflows.
EEGPrep Feature Development
Use this workflow when building a new EEGPrep feature.
Workflow
Switch to
origin/develop, pull fromorigin, and create a new branch with an appropriate name.For every feature to be developed, look at EEGLAB first and find equivalent implementations if they exist. Go through those implementations thoroughly. Match functionality and UX where relevant, and inspect every plausible user flow and edge case.
As you work maintain a running .notes/implementation-notes.html file that captures anything I should know about how the implementation diverges from or interprets the spec, including:
- Design decisions: choices you made where the spec was ambiguous
- Deviations: places where you intentionally departed from the spec, and why
- Tradeoffs: alternatives you considered and why you picked what you did
- Open questions: anything you'd want me to confirm or revise
Plan how to build the features within EEGPrep's existing structure. Read and follow
AGENTS.md. Plan thoroughly, and break down the work into steps.Execute the plan and write code. Do not take shortcuts. Maintain current coding conventions and follow
AGENTS.md. Write tests as described there. Aim for more than 90% coverage for the changed feature code, and ensure the tests pass. Remember, while we are doing a porting project, EEGPrep must work well standalone and must be a delight to use for EEG Researchers. For user-facingpop_*or menu actions, preserve theeegprep-consoleworkspace contract: return(EEG, com)withreturn_com=True, update GUI state throughEEGPrepSession, and keepEEG/ALLEEG/history visible from both the GUI and the console. Make the GUI-plus-console workflow feel seamless for researchers who switch between menus/dialogs, command history, and workspace inspection. Whenever a user-facing API, GUI, console, workflow, plugin, or help behavior changes, update the relevant Sphinx docs and packaged help resources in the same branch. The docs should describe EEGPrep as a standalone Python/Qt application first, with EEGLAB comparisons only where they help users migrate, understand parity decisions, or handle file/indexing boundaries. For mixed GUI pluseegprep-consolefeatures, document both the user workflow and theEEGPrepSessionstate that stays synchronized.For features that involve a GUI component, use the
eeglab-gui-visual-parityskill to iteratively develop the GUI so the UI/UX is familiar to EEGLAB users. Follow EEGPrep's current GUI conventions, keep performance and user experience high, and do not take shortcuts. You must ensure that there is visual parity with EEGLAB for GUI based features; alignment, arrangement, button placement, labels, text fields, default values, enabled states, and control flow are important.Simulate how users would exercise each feature with the
gui-agent-flow-qaskill and Codex's GUI Agent. Cover typical user flows, including loading data fromsample_data, and use every feature developed in the branch as a user would. Also cover edge cases that are likely from a user's point of view. For interactive features, include mixed GUI pluseegprep-consoleflows: act in the GUI, inspect/useEEGin the console, then run a console command and verify the GUI/history refresh. Wherever relevant use the cursor and keyboard like the user would actually use the app. Fix any bugs that surface.After implementation and GUI parity/QA work, write additional regression tests and integration tests for behaviors discovered during testing, including
tests/test_console_workspace.pywhen shared workspace sync or console wrappers are affected.Review the current feature branch against
origin/develop. Use thegithub-pr-reviewskill when appropriate.Act on review findings. Do not take shortcuts while addressing findings. If any findings are not fixed, report them to the user at the end. If GUI features are involved, return to Step 5, then repeat Step 8 until the branch looks good.
When implementation matches the plan and all required tests succeed, create a draft PR to
origin/developas described inAGENTS.md. The PR must include all features requested by the user.After creating the PR, tell the user everything that was done, especially anything that should be flagged for their attention.