mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-04 08:13:30 +08:00
feat: add C# and Dart language support
This commit is contained in:
116
commands/flutter-review.md
Normal file
116
commands/flutter-review.md
Normal file
@@ -0,0 +1,116 @@
|
||||
---
|
||||
description: Review Flutter/Dart code for idiomatic patterns, widget best practices, state management, performance, accessibility, and security. Invokes the flutter-reviewer agent.
|
||||
---
|
||||
|
||||
# Flutter Code Review
|
||||
|
||||
This command invokes the **flutter-reviewer** agent to review Flutter/Dart code changes.
|
||||
|
||||
## What This Command Does
|
||||
|
||||
1. **Gather Context**: Review `git diff --staged` and `git diff`
|
||||
2. **Inspect Project**: Check `pubspec.yaml`, `analysis_options.yaml`, state management solution
|
||||
3. **Security Pre-scan**: Check for hardcoded secrets and critical security issues
|
||||
4. **Full Review**: Apply the complete review checklist
|
||||
5. **Report Findings**: Output issues grouped by severity with fix guidance
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before running `/flutter-review`, ensure:
|
||||
1. **Build passes** — run `/flutter-build` first; a review on broken code is incomplete
|
||||
2. **Tests pass** — run `/flutter-test` to confirm no regressions
|
||||
3. **No merge conflicts** — resolve all conflicts so the diff reflects only intentional changes
|
||||
4. **`flutter analyze` is clean** — fix analyzer warnings before review
|
||||
|
||||
## When to Use
|
||||
|
||||
Use `/flutter-review` when:
|
||||
- Before submitting a PR with Flutter/Dart changes (after build and tests pass)
|
||||
- After implementing a new feature to catch issues early
|
||||
- When reviewing someone else's Flutter code
|
||||
- To audit a widget, state management component, or service class
|
||||
- Before a production release
|
||||
|
||||
## Review Areas
|
||||
|
||||
| Area | Severity |
|
||||
|------|----------|
|
||||
| Hardcoded secrets, cleartext HTTP | CRITICAL |
|
||||
| Architecture violations, state management anti-patterns | CRITICAL |
|
||||
| Widget rebuild issues, resource leaks | HIGH |
|
||||
| Missing `dispose()`, `BuildContext` after await | HIGH |
|
||||
| Dart null safety, missing error/loading states | HIGH |
|
||||
| Const propagation, widget composition | HIGH |
|
||||
| Performance: expensive work in `build()` | HIGH |
|
||||
| Accessibility, semantic labels | MEDIUM |
|
||||
| Missing tests for state transitions | HIGH |
|
||||
| Hardcoded strings (l10n) | MEDIUM |
|
||||
| Pub dependency hygiene | LOW |
|
||||
|
||||
## Example Session
|
||||
|
||||
````text
|
||||
User: /flutter-review
|
||||
|
||||
Agent:
|
||||
# Flutter Code Review
|
||||
|
||||
## Context
|
||||
|
||||
Changed files:
|
||||
- lib/features/auth/presentation/login_page.dart
|
||||
- lib/features/auth/data/auth_repository_impl.dart
|
||||
|
||||
State management: Riverpod (detected from pubspec.yaml)
|
||||
Architecture: feature-first
|
||||
|
||||
## Security Pre-scan
|
||||
|
||||
✓ No hardcoded secrets detected
|
||||
✓ No cleartext HTTP calls
|
||||
|
||||
## Review Findings
|
||||
|
||||
[HIGH] BuildContext used after async gap without mounted check
|
||||
File: lib/features/auth/presentation/login_page.dart:67
|
||||
Issue: `context.go('/home')` called after `await auth.login(...)` with no `mounted` check.
|
||||
Fix: Add `if (!context.mounted) return;` before any navigation after awaits (Flutter 3.7+).
|
||||
|
||||
[HIGH] AsyncValue error state not handled
|
||||
File: lib/features/auth/presentation/login_page.dart:42
|
||||
Issue: `ref.watch(authProvider)` switches on loading/data but has no `error` branch.
|
||||
Fix: Add error case to the switch expression or `when()` call to show a user-facing error message.
|
||||
|
||||
[MEDIUM] Hardcoded string not localized
|
||||
File: lib/features/auth/presentation/login_page.dart:89
|
||||
Issue: `Text('Login')` — user-visible string not using localization system.
|
||||
Fix: Use the project's l10n accessor: `Text(context.l10n.loginButton)`.
|
||||
|
||||
## Review Summary
|
||||
|
||||
| Severity | Count | Status |
|
||||
|----------|-------|--------|
|
||||
| CRITICAL | 0 | pass |
|
||||
| HIGH | 2 | block |
|
||||
| MEDIUM | 1 | info |
|
||||
| LOW | 0 | note |
|
||||
|
||||
Verdict: BLOCK — HIGH issues must be fixed before merge.
|
||||
````
|
||||
|
||||
## Approval Criteria
|
||||
|
||||
- **Approve**: No CRITICAL or HIGH issues
|
||||
- **Block**: Any CRITICAL or HIGH issues must be fixed before merge
|
||||
|
||||
## Related Commands
|
||||
|
||||
- `/flutter-build` — Fix build errors first
|
||||
- `/flutter-test` — Run tests before reviewing
|
||||
- `/code-review` — General code review (language-agnostic)
|
||||
|
||||
## Related
|
||||
|
||||
- Agent: `agents/flutter-reviewer.md`
|
||||
- Skill: `skills/flutter-dart-code-review/`
|
||||
- Rules: `rules/dart/`
|
||||
Reference in New Issue
Block a user