skills/flutter-review/SKILL.md
Unified Flutter review skill — reviews local changes, GitHub PRs, or full Flutter projects. For local changes, adds inline // REVIEW comments to .dart files. For GitHub PRs, classifies changed files by type (.dart, .yaml, assets), assesses change size, spawns parallel specialist reviews (code quality, architecture, state management, performance), aggregates findings, and posts APPROVE or REQUEST_CHANGES via GitHub API. For project audits, grades architecture, code style, performance, best practices A-F with an HTML report. Use whenever the user says "review my code," "review this PR," "check my changes," "review PR #123," "audit this project," "code quality report," "is this ready to merge," or wants any form of Flutter code or architecture review. Also triggers on "check the widgets," "review state management," or "review the providers."
npx skillsauth add cuozg/oh-my-skills flutter-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Detect review target, classify changed file types and size, delegate specialist reviews to parallel subagents, aggregate findings, deliver results — inline comments for local, GitHub comments + APPROVE/REQUEST_CHANGES for PRs, HTML reports for audits.
| Signal | Mode | Reference |
|--------|------|-----------|
| PR URL/number, "PR", "pull request", "merge" | PR Review | references/github-review.md |
| "review my code", "check changes", specific file, no PR | Local Review | references/local-review.md |
| "audit project", "quality report", "tech debt", "rate codebase" | Project Audit | references/project-audit.md |
references/github-review.md.dart → code review (size-aware: minor = single-pass, large = parallel subagents).yaml (pubspec, analysis_options, build configs) → dependency & config review.dart with new providers/notifiers/blocs → state management review.dart with new repositories/services/APIs → architecture reviewflutter-standards via read_skill_file("flutter-standards", "references/<file>"):
dart-style-guide.md — naming, formatting, null-safetyarchitecture-patterns.md — feature-first, layered deps, repository patternstate-management-guide.md — Riverpod patterns, notifier designperformance-optimization.md — rebuilds, const, lazy builderror-handling.md — exception hierarchy, Result patternasync-streams.md — Future/Stream handling, error propagationtesting-patterns.md — test coverage gapsreferences/github-review.md decision rulesgh api, verify postedFollow references/local-review.md:
git diff HEAD -> filter .dart files -> read full files -> spawn parallel subagents (one per criterion from references/review-checklist.md) -> aggregate -> insert // -- REVIEW comments -> apply safe fixes -> task_create for unfixed issues.
Follow references/project-audit.md:
Scope .dart + config files -> analyze 4 categories (Architecture, Code Style, Performance, Best Practices) -> grade A-F -> generate HTML report.
**{icon} Title** — `SEVERITY`
{what is wrong, why it matters}
```suggestion
{corrected code}
```
Suggestion blocks required for MEDIUM+ severity.
CRITICAL -> HIGH -> MEDIUM -> LOW -> STYLE
Minimum floors: setState in large widget -> MEDIUM | Missing dispose() for controllers/streams -> HIGH | Unhandled async error -> HIGH | ! bang operator on nullable without check -> MEDIUM | Widget method extraction (should be class) -> LOW
Load flutter-standards for all checklists via read_skill_file("flutter-standards", "references/<path>"):
dart-style-guide.md — naming, formatting, null-safety, import orderingarchitecture-patterns.md — feature-first, layered architecture, repository patternstate-management-guide.md — Riverpod, BLoC, Provider patternscode-organization.md — folder layout, pubspec, barrel filestesting-patterns.md — unit, widget, golden tests, AAA patternasync-streams.md — Future, Stream, error propagationui-best-practices.md — widget composition, const, keys, responsive layoutperformance-optimization.md — rebuild profiling, RepaintBoundary, frame budgetdebug-logging.md — logging patterns, DevToolsdependency-injection.md — Riverpod as DI, scoping strategiesasset-management.md — images, fonts, flutter_gen, localizationerror-handling.md — exception hierarchies, Result pattern, crash reportingtools
Generate Unity raster image assets through Unity MCP: game sprites, item art, backgrounds, UI icons, portraits, concept images, transparent cutouts, image edits, upscales, background removal, and Unity scene or Game View screenshots. Use when a Unity project needs image files imported under Assets or screenshots captured from the editor. Do not use for meshes, audio, animation, materials, gameplay code, UI Toolkit layout, or generic non-Unity image generation.
tools
Create Unity technical solution documents from user requirements, feature ideas, bug goals, specs, or codebase problems. Use when the user asks for a technical approach, architecture, implementation strategy, solution options, feasibility analysis, system design, or "how should we build/fix this" for Unity runtime, Editor, tools, assets, data, UI, WebGL, SDKs, or production pipelines.
tools
Orchestrate Unity Editor via MCP (Model Context Protocol) tools and resources. Use when working with Unity projects through MCP for Unity - creating/modifying GameObjects, editing scripts, managing scenes, running tests, or any Unity Editor automation. Provides best practices, tool schemas, and workflow patterns for effective Unity-MCP integration.
development
Convert a spec document into an implementation TODO list in the same spec folder. U se when the user says goal-todo, todo from spec, generate tasks from spec, turn this spec into todos, create implementation checklist, extract tasks, or asks to read a Docs/Specs design doc and produce what must be implemented. Includes UI/UX review and codebase investigation before writing the checklist. Do not use for implementing the tasks, creating new goal files, writing test cases, or verifying completed work.