| name | gastrobrain-code-review |
| description | Performs systematic pre-merge code review using checkpoint-based verification to ensure quality standards before merging to develop branch |
| version | 1.0.0 |
Gastrobrain Code Review Agent
Purpose
Performs comprehensive code review before merging feature branches to develop, using a checkpoint-based verification system that systematically validates quality, completeness, and adherence to project standards.
Core Philosophy: Systematic Quality → Checkpoint Verification → Merge Confidence
When to Use This Skill
Use this skill when:
- Ready to merge feature branch to develop
- Want pre-merge quality verification
- Need systematic review checklist
- Want to verify all acceptance criteria met
- Need confirmation all tests and standards pass
- Want merge readiness assessment
Triggers:
- "Review code for #XXX"
- "Ready to merge #XXX"
- "Pre-merge check for #XXX"
- "Code review before merging"
- "/gastrobrain-code-review"
DO NOT use this skill for:
- During active development (mid-feature)
- For reviewing individual commits
- For architectural planning (use planning skill)
- For implementing code (use implementation skill)
Checkpoint-Based Review System
Why Systematic Checkpoints?
The Problem with Ad-Hoc Reviews:
❌ BAD: Quick scan → "Looks good" → Merge → Issues discovered in develop
Risk: High (quality issues reach main branch)
Confidence: Low (unsure what was checked)
Consistency: Low (different things checked each time)
The Checkpoint Advantage:
✅ GOOD: CP1 (git) → CP2 (roadmap) → CP3 (criteria) → ... → Merge with confidence
Risk: Low (systematic verification)
Confidence: High (everything checked)
Consistency: High (same checks every time)
Key Benefits
- Completeness: Nothing overlooked (systematic checklist)
- Quality Assurance: Technical standards verified
- Acceptance Validation: All criteria explicitly checked
- Issue Prevention: Problems caught before merge
- Merge Confidence: Clear approval based on evidence
- Audit Trail: Record of what was verified
Seven Standard Checkpoints
Overview
Every code review follows this structure:
- Git Status & Branch Verification - Clean working state
- Roadmap Completion - All phases complete
- Acceptance Criteria - All requirements met
- Technical Standards - Tests, analyze, coverage
- Code Quality - Debug code, TODOs, comments
- Localization - i18n requirements (if UI changes)
- Merge Readiness - Final assessment and instructions
Checkpoint Flow
Start Review
↓
CP1: Git Status ───→ [Issues?] ──Yes──→ Remediate ──→ Retry CP1
↓ No ↓
CP2: Roadmap ──────→ [Issues?] ──Yes──→ Remediate ──→ Retry CP2
↓ No ↓
CP3: Acceptance ───→ [Issues?] ──Yes──→ Remediate ──→ Retry CP3
↓ No ↓
CP4: Technical ────→ [Issues?] ──Yes──→ Remediate ──→ Retry CP4
↓ No ↓
CP5: Code Quality ─→ [Issues?] ──Yes──→ Remediate ──→ Retry CP5
↓ No ↓
CP6: Localization ─→ [Issues?] ──Yes──→ Remediate ──→ Retry CP6
↓ No ↓
CP7: Merge Ready ──→ Generate merge instructions
↓
Approved (with notes)
Context Detection
Automatic Analysis
The skill automatically detects and analyzes:
1. Current branch: feature/XXX-description
2. Extract issue number: XXX
3. Fetch issue from GitHub: gh issue view XXX
4. Load roadmap: docs/planning/0.1.X/ISSUE-XXX-ROADMAP.md
5. Check git status: uncommitted changes, branch sync
6. Identify changed files: git diff develop...HEAD
7. Determine review focus: UI changes, DB changes, logic changes
Initial Output
Code Review for Issue #XXX
Preparing systematic review...
Context:
- Branch: feature/XXX-description
- Issue: #XXX - [Title from GitHub]
- Roadmap: docs/planning/0.1.X/ISSUE-XXX-ROADMAP.md
- Base branch: develop
- Changed files: X files, +Y/-Z lines
Focus areas detected:
[✓ UI Changes / ✓ Database Migration / ✓ Service Logic / ✓ Testing]
Review will proceed through 7 systematic checkpoints:
1. Git Status & Branch Verification
2. Roadmap Completion
3. Acceptance Criteria Validation
4. Technical Standards (analyze, tests)
5. Code Quality Checks
6. Localization Verification [if UI changes]
7. Merge Readiness Assessment
Ready to begin systematic review? (y/n)
Checkpoint 1: Git Status & Branch Verification
Goal: Ensure clean working state and proper branch alignment
Automated Checks
1.1 - Working Directory Status:
Command: git status
Expected: "nothing to commit, working tree clean"
Status: [✓ Clean / ⚠ Uncommitted changes / ✗ Untracked files]
1.2 - Current Branch:
Command: git branch --show-current
Expected: feature/XXX-description
Status: [✓ Correct / ✗ Wrong branch]
1.3 - Branch Sync with Remote:
Command: git fetch origin && git status
Expected: "Your branch is up to date with 'origin/feature/XXX-description'"
Status: [✓ Up to date / ⚠ Behind / ⚠ Ahead / ✗ Diverged]
1.4 - Sync with Develop:
Command: git fetch origin develop && git merge-base --is-ancestor origin/develop HEAD
Expected: develop is ancestor (no missing commits)
Status: [✓ Up to date / ⚠ Behind develop]
1.5 - Merge Conflicts Check:
Command: git merge-tree $(git merge-base origin/develop HEAD) origin/develop HEAD
Expected: No conflicts
Status: [✓ No conflicts / ✗ Conflicts detected]
Status Indicators
- ✓ PASS: All checks green, ready to proceed
- ⚠ WARNING: Minor issues (e.g., ahead of remote, need to push)
- ✗ FAIL: Blocking issues (uncommitted changes, conflicts)
Remediation
If uncommitted changes:
Fix:
1. Review uncommitted changes: git status
2. Either:
a) Commit them: git add . && git commit -m "message"
b) Stash them: git stash
c) Discard them: git restore .
After fixing, re-run checkpoint 1.
If behind develop:
Fix:
1. Update develop: git fetch origin develop
2. Rebase on develop: git rebase origin/develop
3. Resolve conflicts if any
4. Force push: git push --force-with-lease origin feature/XXX-description
After fixing, re-run checkpoint 1.
If merge conflicts detected:
Warning: Merging to develop will cause conflicts.
Preview conflicts:
[Show conflict areas]
Options:
1. Fix now: Rebase on develop and resolve conflicts
2. Proceed with warning: Resolve during merge
3. Abort review: Fix issues first
Choice? (1/2/3)
Checkpoint 2: Roadmap Completion
Goal: Verify all roadmap phases are complete
Roadmap Analysis
Reading roadmap: docs/planning/0.1.X/ISSUE-XXX-ROADMAP.md
Analyzing phases...
Phase 1: Analysis & Understanding
- [✓] Task 1 description
- [✓] Task 2 description
- [✓] Task 3 description
Status: ✓ COMPLETE (3/3 tasks)
Phase 2: Implementation
- [✓] Subtask 1
- [✓] Subtask 2
- [⚠] Subtask 3 (checkbox not marked)
Status: ⚠ INCOMPLETE (2/3 tasks)
Phase 3: Testing
- [✓] All tests implemented
- [✓] Tests passing
Status: ✓ COMPLETE (2/2 tasks)
Phase 4: Documentation & Cleanup
- [✓] Code comments added
- [✗] README not updated
Status: ✗ INCOMPLETE (1/2 tasks)
Status Assessment
Overall Roadmap Status: ⚠ MOSTLY COMPLETE
Complete Phases: 2/4
- ✓ Phase 1: Analysis & Understanding
- ⚠ Phase 2: Implementation (1 task unmarked)
- ✓ Phase 3: Testing
- ✗ Phase 4: Documentation (README missing)
Issues Found:
1. Phase 2, Task 3: Checkbox not marked (possible oversight?)
2. Phase 4: README update missing
Is Phase 2, Task 3 actually complete? (y/n)
[If yes: Update roadmap checkbox]
[If no: Task needs completion]
Remediation
If tasks incomplete:
Remediation Required:
Issue: Phase 4 - README update missing
Steps to fix:
1. Open README.md
2. Add section documenting new feature
3. Include usage examples if applicable
4. Commit changes: git add README.md && git commit -m "docs: update README for #XXX"
5. Update roadmap: Mark Phase 4 task complete
After fixing:
- Update roadmap file
- Commit roadmap update
- Continue review from checkpoint 2
Fix now? (y/n)
Checkpoint 3: Acceptance Criteria Validation
Goal: Verify all issue acceptance criteria are met
Criteria Analysis
Loading acceptance criteria from issue #XXX...
From issue description:
Acceptance Criteria:
1. [Criterion 1 from issue]
Type: [Automated / Manual verification]
[If automated: ✓ Verified via test_name_test.dart]
[If manual: User confirmation needed]
Status: [Pending user confirmation]
2. [Criterion 2 from issue]
Type: Manual verification
Verification needed: [Is this requirement met? y/n]
Status: [Pending]
3. [Criterion 3 from issue]
Type: Automated
✓ Verified: test passes, feature works as expected
Status: ✓ CONFIRMED
[Iterate through all criteria]
User Confirmation Flow
Criterion 1: "Users can add notes to recipes"
This requires manual verification.
Questions:
1. Can you navigate to a recipe? (y/n)
2. Is there a notes field/button? (y/n)
3. Can you add text to notes? (y/n)
4. Does the note save and persist? (y/n)
[Collect user responses]
Result: [✓ ALL YES - PASS / ⚠ SOME NO - PARTIAL / ✗ MOSTLY NO - FAIL]
Status Assessment
Acceptance Criteria Summary:
Total Criteria: 5
✓ Confirmed: 4
⚠ Partial: 1
✗ Failed: 0
Details:
✓ Criterion 1: Users can add notes to recipes
✓ Criterion 2: Notes persist across app restarts
✓ Criterion 3: Notes support multi-line text
⚠ Criterion 4: Notes have 500 char limit (not enforced in UI)
✓ Criterion 5: Empty notes are allowed
Overall Status: ⚠ MOSTLY MET (non-critical gap)
Issue: Criterion 4 - Character limit not shown in UI
Severity: ⚠ Minor (backend enforces limit, but UX could be better)
Options:
1. Fix now: Add character counter to UI
2. Create follow-up issue: Track as enhancement
3. Accept as-is: Note in merge decision
Choice? (1/2/3)
Remediation
Creating follow-up issue for minor gap...
Created issue #XXY: "Add character counter to recipe notes field"
- Labeled as: enhancement
- Linked to: #XXX
- Assigned to: backlog
Criterion 4 marked as: ✓ PASS WITH FOLLOW-UP
Proceed to checkpoint 4? (y/n)
Checkpoint 4: Technical Standards
Goal: Verify code quality through automated technical checks
4.1 - Flutter Analyze
Running: flutter analyze
Output:
Analyzing gastrobrain...
[Analysis progress...]
Result:
- 0 errors
- 0 warnings
- 0 hints
Status: ✓ PASS - No issues found
If issues found:
Result:
- 2 errors
- 5 warnings
- 3 hints
Issues:
ERROR: lib/widgets/recipe_dialog.dart:45
- Undefined name 'recipeName'
ERROR: lib/core/services/recommendation_service.dart:120
- Missing return statement
WARNING: lib/screens/meal_planning_screen.dart:89
- Unused import 'package:flutter/material.dart'
[... more issues ...]
Status: ✗ FAIL - Must fix before merge
Remediation:
1. Fix all errors (blocking)
2. Fix all warnings (required)
3. Fix hints (recommended)
Commands to fix:
- View specific file: [command]
- Run analyze again: flutter analyze
Fix now? (y/n)
4.2 - Flutter Test
Running: flutter test
Output:
00:00 +0: loading test/...
[Test progress...]
00:05 +615: All tests passed!
Result:
- Total tests: 615
- Passed: 615
- Failed: 0
- Skipped: 0
Status: ✓ PASS - All tests passing
If tests fail:
Result:
- Total tests: 618
- Passed: 615
- Failed: 3
- Skipped: 0
Failed Tests:
1. test/widgets/recipe_notes_dialog_test.dart
- "saves note with 500 characters"
- Expected: true, Actual: false
- Error: Character limit not enforced
2. test/core/services/recipe_service_test.dart
- "validates note length"
- Expected: ValidationException, Actual: no exception
3. test/integration/recipe_workflow_test.dart
- "complete recipe creation with notes"
- Timeout after 30s
Status: ✗ FAIL - Must fix failing tests
Remediation:
1. Fix failing tests (blocking)
2. Investigate test 3 timeout (may indicate real issue)
Commands:
- Run specific test: flutter test test/widgets/recipe_notes_dialog_test.dart
- Run with verbose: flutter test --verbose
- Debug test: [instructions]
Fix now? (y/n)
4.3 - Test Coverage (Optional)
Running: flutter test --coverage
Coverage Report:
- Overall: 87.3%
- Changed files: 89.1%
By Category:
- Widgets: 85.2%
- Services: 92.4%
- Models: 95.1%
- Utils: 78.9%
Status: ✓ PASS - Coverage maintained
[If coverage decreased significantly:]
Status: ⚠ WARNING - Coverage decreased from 89% to 87%
Recommendation: Consider adding tests for uncovered code
- lib/widgets/recipe_notes_field.dart: 62% coverage
- lib/core/services/note_validator.dart: 71% coverage
Proceed anyway? (y/n)
Overall Technical Status
Checkpoint 4 Summary:
4.1 - Flutter Analyze: ✓ PASS
4.2 - Flutter Test: ✓ PASS (615 tests)
4.3 - Test Coverage: ✓ PASS (87.3%)
Overall Status: ✓ PASS - All technical standards met
Proceed to checkpoint 5? (y/n)
Checkpoint 5: Code Quality Checks
Goal: Manual verification of code quality standards
5.1 - Debug Code Detection
Checking for debug code...
Searching for print() statements:
Command: grep -r "print(" lib/ --include="*.dart" | grep -v "// print"
Result: [✓ None found / ⚠ X instances found]
If found:
Files with print():
- lib/screens/debug_screen.dart:45 (OK - debug screen)
- lib/widgets/recipe_card.dart:89 (REMOVE - debug leftover)
Searching for debugPrint():
Result: [✓ None found / ⚠ X instances found]
Searching for debug flags:
Pattern: kDebugMode
Result: [✓ Properly used / ⚠ Improper usage]
Status: [✓ CLEAN / ⚠ MINOR ISSUES / ✗ DEBUG CODE PRESENT]
5.2 - TODO Comments
Checking for TODO comments...
Command: grep -r "TODO" lib/ --include="*.dart"
Result: [✓ None found / ⚠ X found]
If found:
TODOs in production code:
1. lib/core/services/recipe_service.dart:120
- "TODO: Add caching"
- Severity: ⚠ Minor (performance optimization)
2. lib/widgets/meal_plan_widget.dart:67
- "TODO: Fix bug with dates"
- Severity: ✗ Critical (bug noted but not fixed)
Status: [✓ CLEAN / ⚠ MINOR TODOs / ✗ CRITICAL TODOs]
Remediation for critical TODOs:
- Either fix the issue now
- Or create GitHub issue and remove TODO
Proceed? (y/n)
5.3 - Error Handling
Manual verification needed: Error Handling
Review these aspects:
1. Are all async operations wrapped in try-catch?
User confirmation: (y/n)
2. Do all error paths show user-friendly messages?
User confirmation: (y/n)
3. Are errors logged appropriately (not just printed)?
User confirmation: (y/n)
4. Do errors in critical paths prevent data corruption?
User confirmation: (y/n)
[Collect responses]
Status: [✓ PASS / ⚠ SOME GAPS / ✗ INADEQUATE]
5.4 - Code Documentation
Manual verification needed: Code Documentation
Review these aspects:
1. Is complex business logic documented with comments?
User confirmation: (y/n)
2. Are public APIs documented (methods, classes)?
User confirmation: (y/n)
3. Do comments explain "why" not just "what"?
User confirmation: (y/n)
4. Are any confusing patterns explained?
User confirmation: (y/n)
Status: [✓ WELL DOCUMENTED / ⚠ MINIMAL DOCS / ✗ UNDOCUMENTED]
Overall Code Quality Status
Checkpoint 5 Summary:
5.1 - Debug Code: ✓ CLEAN
5.2 - TODO Comments: ⚠ MINOR (1 non-critical TODO)
5.3 - Error Handling: ✓ ADEQUATE
5.4 - Documentation: ✓ WELL DOCUMENTED
Overall Status: ✓ PASS WITH MINOR NOTES
Proceed to checkpoint 6? (y/n)
Checkpoint 6: Localization Verification
Goal: Verify internationalization requirements (skip if no UI changes)
6.1 - Detect UI Changes
Analyzing changed files for UI components...
Changed Files Analysis:
- lib/screens/: 2 files
- lib/widgets/: 3 files
- lib/dialogs/: 1 file
UI Changes Detected: ✓ YES
Proceeding with localization checks...
[If no UI changes:]
No UI changes detected.
Skipping localization verification.
Proceed to checkpoint 7? (y/n)
6.2 - New UI Strings Detection
Searching for new UI strings...
Method 1: Check ARB file changes
Command: git diff develop...HEAD -- lib/l10n/app_en.arb
New strings in app_en.arb:
1. "recipeNotesLabel": "Notes"
2. "recipeNotesHint": "Add your cooking notes here"
3. "recipeNotesCharLimit": "{current} / {max} characters"
Found: 3 new strings
Method 2: Check for hardcoded strings (should be none)
Command: grep -r "Text(" lib/widgets/ lib/screens/ | grep -v "AppLocalizations"
Result: [✓ None found / ⚠ X hardcoded strings found]
6.3 - ARB Files Updated
Verifying ARB file completeness...
Check 1: English ARB (app_en.arb)
- "recipeNotesLabel": ✓ Present
- "recipeNotesHint": ✓ Present
- "recipeNotesCharLimit": ✓ Present
Status: ✓ COMPLETE
Check 2: Portuguese ARB (app_pt.arb)
- "recipeNotesLabel": ✓ Present ("Notas")
- "recipeNotesHint": ✓ Present ("Adicione suas notas de cozinha aqui")
- "recipeNotesCharLimit": ✓ Present ("{current} / {max} caracteres")
Status: ✓ COMPLETE
Both ARB files updated: ✓ YES
If translations missing:
Check 2: Portuguese ARB (app_pt.arb)
- "recipeNotesLabel": ✗ MISSING
- "recipeNotesHint": ✗ MISSING
- "recipeNotesCharLimit": ✓ Present
Status: ✗ INCOMPLETE
Remediation:
1. Open lib/l10n/app_pt.arb
2. Add missing translations:
```json
"recipeNotesLabel": "Notas",
"recipeNotesHint": "Adicione suas notas de cozinha aqui"
- Run: flutter gen-l10n
- Commit changes
Fix now? (y/n)
### 6.4 - AppLocalizations Usage
Verifying AppLocalizations usage...
Checking UI files for proper localization:
- lib/widgets/recipe_notes_field.dart: ✓ Uses AppLocalizations
- lib/screens/recipe_detail_screen.dart: ✓ Uses AppLocalizations
- lib/dialogs/recipe_notes_dialog.dart: ✓ Uses AppLocalizations
Checking for hardcoded strings:
Pattern: Text("...", without AppLocalizations
Result: [✓ None found / ⚠ X found]
Status: [✓ PROPER USAGE / ✗ HARDCODED STRINGS]
If hardcoded strings found:
Files with hardcoded strings:
- lib/widgets/recipe_card.dart:45
- Text("Recipe") → Should use AppLocalizations.of(context)!.recipeLabel
Remediation: Replace hardcoded strings with AppLocalizations
Fix now? (y/n)
### 6.5 - Date/Time Formatting
Checking date/time formatting...
Searching for DateFormat usage:
Pattern: DateFormat.(...)
Findings:
- lib/widgets/meal_plan_card.dart:67
- DateFormat('yyyy-MM-dd').format(date) ✓ Correct
- lib/screens/shopping_list_screen.dart:102
- DateFormat.yMMMd().format(date) ⚠ Missing locale
Status: ⚠ MINOR ISSUE
Remediation:
Change: DateFormat.yMMMd().format(date)
To: DateFormat.yMMMd(Localizations.localeOf(context).toString()).format(date)
Fix now? (y/n)
### Overall Localization Status
Checkpoint 6 Summary:
6.1 - UI Changes: ✓ Detected (6 files)
6.2 - New Strings: ✓ Found and added (3 strings)
6.3 - ARB Files: ✓ Both EN and PT updated
6.4 - AppLocalizations: ✓ Properly used
6.5 - Date Formatting: ⚠ Minor issue (1 missing locale)
Overall Status: ✓ PASS WITH MINOR NOTE
Proceed to final checkpoint? (y/n)
## Checkpoint 7: Merge Readiness Assessment
**Goal**: Final review summary and merge decision
### Review Summary
==================
MERGE READINESS ASSESSMENT
Issue #XXX: [Title]
Branch: feature/XXX-description → develop
CHECKPOINT RESULTS:
✓ Checkpoint 1: Git Status & Branch
- Working directory clean
- Branch properly synced
- No merge conflicts
✓ Checkpoint 2: Roadmap Completion
- All 4 phases complete
- All tasks checked off
✓ Checkpoint 3: Acceptance Criteria
- 5/5 criteria met
- 1 follow-up issue created (#XXY)
✓ Checkpoint 4: Technical Standards
- Flutter analyze: 0 issues
- Flutter test: 615/615 passing
- Coverage: 87.3% (maintained)
✓ Checkpoint 5: Code Quality
- No debug code
- 1 minor TODO (non-blocking)
- Error handling adequate
- Well documented
✓ Checkpoint 6: Localization
- 3 new strings added
- Both EN/PT ARBs updated
- 1 minor date format issue (noted)
WARNINGS / NOTES:
⚠ Minor TODO in recipe_service.dart (performance optimization)
⚠ DateFormat missing locale in 1 location (non-critical)
ℹ Follow-up issue #XXY created for UI enhancement
BLOCKING ISSUES:
✗ None - All critical requirements met
==================
OVERALL ASSESSMENT
Status: ✓ APPROVED FOR MERGE
Quality Level: HIGH
Risk Level: LOW
Completeness: 100% (with minor notes)
Confidence: ✓ HIGH - All checkpoints passed
Recommendation: MERGE TO DEVELOP
Merge Strategy: Standard merge (no fast-forward)
Post-Merge: Monitor for 24h, ready for release branch
Ready to see merge instructions? (y/n)
### Merge Decision Matrix
**Automatic Approval** (if all true):
- ✓ All checkpoints pass
- ✓ No blocking issues
- ✓ Warnings acceptable (< 3 minor)
- ✓ All acceptance criteria met
**Conditional Approval** (if some true):
- ⚠ Some warnings present (3-5)
- ⚠ Minor gaps with follow-ups created
- ⚠ Some manual checks uncertain
→ Proceed with caution, note issues
**Rejection** (if any true):
- ✗ Any checkpoint fails
- ✗ Critical acceptance criteria unmet
- ✗ Tests failing
- ✗ Flutter analyze errors
- ✗ Blocking bugs present
→ DO NOT MERGE, fix issues first
## Merge Instructions Generation
When approved:
═══════════════════════════════════════════
MERGE INSTRUCTIONS FOR ISSUE #XXX
═══════════════════════════════════════════
Review Status: ✓ APPROVED
Merge Strategy: Standard merge to develop
Estimated Time: 5-10 minutes
PREREQUISITES VERIFIED:
✓ All tests passing (615 tests)
✓ Code quality standards met
✓ Branch synced with develop
✓ No merge conflicts
✓ Working directory clean
═══════════════════════════════════════════
STEP-BY-STEP MERGE PROCESS
═══════════════════════════════════════════
STEP 1: Final Status Check
═══════════════════════════════════════════
Command:
git status
Expected Output:
On branch feature/XXX-description
nothing to commit, working tree clean
Status: [Execute and verify]
═══════════════════════════════════════════
STEP 2: Switch to Develop Branch
═══════════════════════════════════════════
Commands:
git checkout develop
git pull origin develop
Expected Output:
Switched to branch 'develop'
Already up to date.
Status: [Execute and verify]
═══════════════════════════════════════════
STEP 3: Merge Feature Branch
═══════════════════════════════════════════
Command:
git merge --no-ff feature/XXX-description -m "Merge feature/XXX-description: [Title]"
Expected Output:
Merge made by the 'recursive' strategy.
[List of changed files]
⚠️ If conflicts occur:
- Stop and review conflicts: git status
- Resolve conflicts in each file
- Stage resolved files: git add [files]
- Complete merge: git commit
- Verify: git log --oneline -5
Status: [Execute and verify]
═══════════════════════════════════════════
STEP 4: Post-Merge Verification
═══════════════════════════════════════════
Run final quality checks on develop branch:
Command 1: flutter analyze
Expected: No issues found
Status: [Execute and verify]
Command 2: flutter test
Expected: All tests passed! (615/615)
Status: [Execute and verify]
⚠️ If any check fails:
- DO NOT push to origin
- Investigate failure cause
- Fix on develop or revert merge: git reset --hard HEAD~1
- Re-merge after fixing
═══════════════════════════════════════════
STEP 5: Push to Remote
═══════════════════════════════════════════
Command:
git push origin develop
Expected Output:
To github.com:username/gastrobrain.git
abc1234..def5678 develop -> develop
Status: [Execute and verify]
═══════════════════════════════════════════
STEP 6: Close Issue and Update Project
═══════════════════════════════════════════
Command:
gh issue close XXX --comment "✓ Merged to develop in commit $(git rev-parse --short HEAD). All acceptance criteria met, tests passing."
Expected Output:
✓ Closed issue #XXX
Note: GitHub Project status will automatically update to "Done"
Status: [Execute and verify]
═══════════════════════════════════════════
STEP 7: Clean Up Feature Branch (Optional)
═══════════════════════════════════════════
Commands:
git branch -d feature/XXX-description
git push origin --delete feature/XXX-description
Expected Output:
Deleted branch feature/XXX-description
To github.com:username/gastrobrain.git
- [deleted] feature/XXX-description
Note: This is optional. Keep branch if you want history preserved.
Status: [Execute if desired]
═══════════════════════════════════════════
MERGE COMPLETE - POST-MERGE CHECKLIST
═══════════════════════════════════════════
Verify the following:
□ Develop branch has new commits: git log develop --oneline -5
□ Issue #XXX is closed on GitHub
□ GitHub Project status shows "Done"
□ Feature branch deleted (if Step 7 executed)
□ CI/CD pipeline passes (if applicable)
□ No errors in develop branch
═══════════════════════════════════════════
NEXT STEPS
═══════════════════════════════════════════
Immediate:
- Monitor develop branch for any issues
- Test feature in dev environment if available
- Check if any follow-up issues need attention (#XXY)
Within 24-48 hours:
- Consider merge to release branch if stable
- Update release notes if preparing release
- Monitor for any bug reports related to #XXX
═══════════════════════════════════════════
MERGE NOTES
═══════════════════════════════════════════
Quality Assessment:
- All 7 checkpoints passed
- 615 tests passing
- Zero analyze warnings
- High confidence merge
Known Minor Items:
- 1 TODO comment (non-blocking)
- 1 date format minor issue
- Follow-up issue #XXY created
Merge performed by: [System Date/Time]
Review completed by: gastrobrain-code-review skill v1.0.0
═══════════════════════════════════════════
Proceed with merge? (y/n)
## Failure Remediation Guide
### General Remediation Pattern
CHECKPOINT X FAILED: [Checkpoint Name]
Issues Identified:
- [Specific issue 1]
Severity: [✗ Critical / ⚠ Warning / ℹ Info]
- [Specific issue 2]
Severity: [Level]
══════════════════════════════════════════
REMEDIATION FOR ISSUE 1
══════════════════════════════════════════
Problem: [Detailed description]
Root Cause: [Why it's happening]
Solution Steps:
-
[Step 1 with specific commands]
Command: [exact command]
Expected: [expected result]
-
[Step 2]
Command: [exact command]
Expected: [expected result]
-
[Verification step]
Command: [exact command]
Expected: [expected result]
Estimated Time: [X minutes]
══════════════════════════════════════════
REMEDIATION FOR ISSUE 2
══════════════════════════════════════════
[Similar structure]
══════════════════════════════════════════
AFTER REMEDIATION
══════════════════════════════════════════
Options:
- Re-run entire review: /gastrobrain-code-review
- Re-run from this checkpoint: [if possible]
- Abort and fix offline: [defer review]
What would you like to do? (1/2/3)
### Common Failures and Remediation
**Flutter Analyze Errors:**
Issue: 5 errors, 12 warnings found
Remediation:
- View all issues: flutter analyze > analyze_output.txt
- Fix errors first (blocking):
- Open each file
- Fix error
- Save and re-analyze
- Fix warnings (required for merge)
- Re-run: flutter analyze
- Verify: 0 issues
Time estimate: 15-30 minutes depending on complexity
**Test Failures:**
Issue: 3/618 tests failing
Remediation:
- Run failing tests with verbose output:
flutter test test/path/to/failing_test.dart --verbose
- Identify failure cause from output
- Common causes:
- Test data outdated
- Logic bug in code
- Test expectations wrong
- Timing issue (increase timeout)
- Fix issue
- Re-run specific test to verify
- Run full suite: flutter test
- Verify: All tests passing
Time estimate: 10-60 minutes per test
**Acceptance Criteria Not Met:**
Issue: Criterion 3 not met - "Feature X works on small screens"
Remediation:
- Test feature on small screen device/emulator
- Identify layout issue (overflow, clipping, etc.)
- Fix responsive layout:
- Use MediaQuery
- Add scrolling if needed
- Adjust constraints
- Test on multiple screen sizes
- Re-verify acceptance criterion
- Update any relevant tests
Time estimate: 30-120 minutes
**Localization Issues:**
Issue: 3 strings not translated to Portuguese
Remediation:
- Identify missing strings: [list]
- Open lib/l10n/app_pt.arb
- Add translations:
"key1": "Tradução 1",
"key2": "Tradução 2",
"key3": "Tradução 3"
- Run: flutter gen-l10n
- Verify: Check both ARB files have same keys
- Test: Switch app to PT locale and verify
Time estimate: 10-20 minutes
## Quality Standards Reference
### Must-Have Standards (Blocking)
**These MUST pass for merge approval:**
- ✗ Flutter analyze: ZERO errors
- ✗ Flutter test: 100% passing rate
- ✗ Critical acceptance criteria: ALL met
- ✗ Backward compatibility: NO breaking changes
- ✗ Data integrity: NO data loss scenarios
- ✗ Security: NO vulnerabilities introduced
### Should-Have Standards (Warning)
**These should pass but can proceed with justification:**
- ⚠ Flutter analyze: Zero warnings (minor warnings acceptable with reason)
- ⚠ Test coverage: Maintained or improved (small decrease acceptable)
- ⚠ Documentation: README updated (can do in follow-up)
- ⚠ Code comments: Complex logic documented (can improve in follow-up)
- ⚠ TODOs: Removed or tracked (non-critical TODOs acceptable)
### Nice-to-Have Standards (Note)
**These improve quality but don't block merge:**
- ℹ Code style: Consistent formatting (automated by formatter)
- ℹ Performance: Optimizations possible (track for future)
- ℹ Additional tests: Edge cases could be added (track for future)
- ℹ Documentation expansion: More examples could help (track for future)
## Success Criteria
The code review succeeds when:
1. ✓ All 7 checkpoints completed systematically
2. ✓ No blocking issues found (or all remediated)
3. ✓ All acceptance criteria explicitly verified
4. ✓ Technical standards met (analyze, tests)
5. ✓ Clear merge decision made (approve/conditional/reject)
6. ✓ Merge instructions provided if approved
7. ✓ User has high confidence in merge safety
## References
- **Issue Workflow**: `docs/workflows/ISSUE_WORKFLOW.md`
- **Testing Guide**: `docs/testing/DIALOG_TESTING_GUIDE.md`
- **Localization Protocol**: `docs/workflows/L10N_PROTOCOL.md`
- **Edge Case Standards**: Issue #39, `docs/testing/EDGE_CASE_TESTING_GUIDE.md`
- **CLAUDE.md**: General development workflow
---
**Remember**: Code review is about quality assurance, not speed. Each checkpoint verification prevents issues from reaching develop branch. Never rush through checkpoints.