name: github-pr-review description: Review a pull request for correctness, MATLAB/Octave behavior, EEGLAB data-structure consistency, GUI/history regressions, and repository convention compliance in sccn/eeglab. allowed-tools: Bash(gh issue view:), Bash(gh search:), Bash(gh issue list:), Bash(gh pr comment:), Bash(gh pr diff:), Bash(gh pr view:), Bash(gh pr list:), Bash(gh pr review:), Bash(git rev-parse:*), mcp__github_inline_comment__create_inline_comment
Provide a code review for the given pull request.
You are reviewing EEGLAB, a MATLAB-native toolbox for EEG and related electrophysiological signal processing.
Read first:
@AGENTS.md
Review Goals
Prioritize:
- Correctness bugs and behavioral regressions in changed MATLAB code.
- EEG structure consistency, including dimensions, events, epochs, channel locations, ICA fields, STUDY fields, and save/history fields.
- GUI and command-line parity for
pop_*functions. - MATLAB and Octave compatibility where the changed code claims or implies it.
- Focused tests or reproducibility commands for changed behavior.
- Simple code that follows existing EEGLAB conventions.
High-Signal Threshold
Flag only issues that are specific, actionable, and tied to changed code.
Flag:
- Code that will fail to parse or run in a common MATLAB or Octave path.
- Incorrect dimensions, indexing, event latencies, channel metadata, ICA fields, or STUDY state after the changed operation.
- A broken
pop_*command-line path, GUI path, or returned command string. - Missing validation for a realistic regression introduced by the change.
- Unsafe file, path, download, or plugin handling in changed code.
- Clear violations of
AGENTS.mdor scoped directory instructions.
Do not flag:
- Pre-existing issues outside the PR.
- Generic style preferences.
- Broad refactors unrelated to the diff.
- Hypothetical edge cases without a realistic EEGLAB path.
- Issues a normal linter or MATLAB parser would report unless they change behavior or block execution.
Review Workflow
Check whether the PR is closed or draft. If so, stop unless the user explicitly requested review anyway.
Read the PR title, body, changed files, and diff:
gh pr view <PR> --json title,body,files,state,isDraft,author gh pr diff <PR>Find relevant instructions:
find .. -name AGENTS.md -o -name CLAUDE.mdApply only instructions in the changed file's directory or parents.
Review changed files against the EEGLAB rules in
AGENTS.md.Validate candidate findings by reading the surrounding source, not just the diff.
Produce a concise terminal summary. If
--commentwas not provided, stop.If
--commentwas provided, post or update a single PR comment.
Review Comment Format
Use this format:
## Code review
- Overall assessment: <safe to merge / needs changes / needs more context>
- Highest-risk area: <area>
- Merge recommendation: <safe to merge / needs changes / needs more context>
## Blocking
<findings or None.>
## Important
<findings or None.>
## Nits
<findings or None.>
## Test gaps
<findings or None.>
## EEGLAB notes
<findings or None.>
Rules:
- If a section has no findings, write
None. - Each finding must include severity, file/function reference, why it matters, and a concrete suggested fix.
- Keep the review concise.
- Do not include generic praise.
- If no issues were found, say:
## Code review
- Overall assessment: Looks good.
- Highest-risk area: None identified.
- Merge recommendation: Safe to merge.
## Blocking
None.
## Important
None.
## Nits
None.
## Test gaps
None.
## EEGLAB notes
None.
Checked for correctness bugs, MATLAB/Octave behavior, EEG structure consistency, GUI/history regressions, changed-behavior tests, and AGENTS.md compliance.
Post or update the review comment with:
gh pr comment "$PR_NUMBER" --edit-last --create-if-none --body-file <file>
Inline Comments
Use inline comments only for validated issues that are best attached to a specific changed line. Do not duplicate summary findings inline.
Inline comments must:
- State severity.
- Explain the concrete bug or risk.
- Suggest a fix.
- Include a committable suggestion only when the suggestion fully fixes the issue and is small.
Never credit yourself or AI tools in review comments.