🤖 Phase 2 completes the in-repo cleaning and filtering plugin depth that researchers use in preprocessing workflows.
Summary
Finish useful standalone parity for bundled clean_rawdata and firfilt workflows. This phase should not port Manopt or every MATLAB private helper blindly; it should deliver user-visible cleaning/filtering behavior, diagnostics, reports, boundary behavior, progress output, GUI parity, and tests.
Scope
clean_rawdata:
- Riemannian ASR behavior decisions and implementation where feasible.
asr_calibrate_r / asr_process_r equivalents or explicit optional-dependency limitation if not maintainable.
vis_artifacts-style diagnostics integrated with EEGPrep/EEGBrowser where useful.
- EEGLAB-like progress messages for GUI plus
eegprep-console users.
- Nonfinite data handling and sample-data regression coverage.
firfilt:
findboundaries, firfilt, firfiltsplit, firfiltreport, fir_filterdcpadded behavior where useful.
- Order/window helpers:
kaiserbeta, invkaiserbeta, invfirwsord, minphaserceps, windows.
- Order dialogs/wrappers:
pop_firpmord, pop_firwsord, pop_kaiserbeta, pop_xfirws if user-facing in EEGLAB.
- Frequency-response plotting/reporting through native Python/Qt/matplotlib where appropriate.
Acceptance Criteria
- Cleaning/filtering workflows operate on continuous and epoched data, respect boundary events, and invalidate/reactivate ICA consistently with EEGLAB expectations.
- GUI dialogs and reports match EEGLAB layout, labels, defaults, enabled states, and workflow where applicable.
eegprep-console receives replayable commands and progress output in the right order.
- MATLAB parity tests cover deterministic filter/order/helper outputs.
- Sample-data integration tests cover realistic cleaning/filtering flows.
- No broad Manopt port is added unless it is directly needed and justified.
Required References
AGENTS.md
src/eegprep/eeglab/plugins/clean_rawdata/
src/eegprep/eeglab/plugins/firfilt/
src/eegprep/plugins/clean_rawdata/
src/eegprep/plugins/firfilt/
.agents/skills/eegprep-feature-development/SKILL.md
.agents/skills/eeglab-gui-visual-parity/SKILL.md
.agents/skills/gui-agent-flow-qa/SKILL.md
/goal
/goal Complete standalone EEGPrep parity for useful clean_rawdata and firfilt bundled-plugin workflows. Use EEGLAB plugin source as the oracle, implement user-facing cleaning/filtering/report/diagnostic behavior without stale Manopt bloat or runtime EEGLAB dependency, preserve GUI plus eegprep-console synchronization, add MATLAB parity tests for deterministic helpers, sample_data integration tests, visual parity screenshots for dialogs/reports, progress-output tests, ruff/format/ty, non-slow pytest, and pre-commit. Fix review findings unless they are explicit scope creep and report any accepted limitations.
🤖 Phase 2 completes the in-repo cleaning and filtering plugin depth that researchers use in preprocessing workflows.
Summary
Finish useful standalone parity for bundled
clean_rawdataandfirfiltworkflows. This phase should not port Manopt or every MATLAB private helper blindly; it should deliver user-visible cleaning/filtering behavior, diagnostics, reports, boundary behavior, progress output, GUI parity, and tests.Scope
clean_rawdata:asr_calibrate_r/asr_process_requivalents or explicit optional-dependency limitation if not maintainable.vis_artifacts-style diagnostics integrated with EEGPrep/EEGBrowser where useful.eegprep-consoleusers.firfilt:findboundaries,firfilt,firfiltsplit,firfiltreport,fir_filterdcpaddedbehavior where useful.kaiserbeta,invkaiserbeta,invfirwsord,minphaserceps,windows.pop_firpmord,pop_firwsord,pop_kaiserbeta,pop_xfirwsif user-facing in EEGLAB.Acceptance Criteria
eegprep-consolereceives replayable commands and progress output in the right order.Required References
AGENTS.mdsrc/eegprep/eeglab/plugins/clean_rawdata/src/eegprep/eeglab/plugins/firfilt/src/eegprep/plugins/clean_rawdata/src/eegprep/plugins/firfilt/.agents/skills/eegprep-feature-development/SKILL.md.agents/skills/eeglab-gui-visual-parity/SKILL.md.agents/skills/gui-agent-flow-qa/SKILL.md/goal