Skip to content

kinwisenz-devops/flutter-optimiser

v0.4.0MIT

Flutter performance audit and optimisation skills with a workflow agent

flutter-perf-audit

Use when starting any Flutter performance task, before editing code, or when asked "where are the performance problems". Runs the investigation and planning phase of a Flutter performance review: maps architecture, state management, data flow, pagination, image strategy and lint rules, finds hotspots, classifies every finding, and writes the XML plan block. Do not use to implement fixes; hand off to the matching flutter-perf-* skill.

flutter-perf-build-and-rebuild

Use when a screen rebuilds too much, a toggle or search input rebuilds a whole page, or build() does computation. Fixes expensive work inside Flutter build() methods and over-broad rebuilds: repeated sorting/filtering/formatting in build, widget-returning helper methods, missing const, builder widgets rebuilding static children, and state subscriptions (Riverpod select, Consumer, scoped providers) that rebuild too much. Do not use for list construction (flutter-perf-lists-and-scrolling) or derived-state caching (flutter-perf-derived-state).

flutter-perf-derived-state

Use when the same values are recomputed on every rebuild or the client repeatedly scans thousands of records. Optimises derived and aggregated state in a Flutter app without changing results: totals, counts, percentages, balances, scores, grouped or sorted collections, and other values computed from large datasets. Covers memoisation, provider-level caching, incremental calculation, and deciding whether aggregation or pagination belongs on a backend instead of the client. Do not use to change calculation rules.

flutter-perf-images-and-assets

Audits and fixes Flutter image and asset performance: oversized source images, images decoded far larger than displayed, cacheWidth/cacheHeight, resolution-aware asset variants (arbitrary densities, not just 1x/2x/3x), duplicate density variants, and choosing SVG/vector vs raster for logos, icons, illustrations, photos and thumbnails. Use for high memory on image-heavy screens, slow scrolling with images, or large app assets. Do not convert assets just because another format could be smaller.

flutter-perf-isolates

Use when DevTools shows UI-thread frames blocked by Dart computation. Decides whether and how to move CPU-heavy Flutter work off the main isolate using Isolate.run or compute: large CSV parsing, bulk categorisation, pattern or recurrence detection, big JSON parsing, image manipulation, large local analytics. Do not use for ordinary network or async I/O, or for small computations where isolate overhead exceeds the work.

flutter-perf-lists-and-scrolling

Use for janky scroll, slow first paint of long lists, or thousands of widgets built at once. Improves scrolling and list performance in Flutter: replaces eager ListView(children: data.map(...).toList()) with ListView.builder, GridView.builder or sliver builders for large item histories, and evaluates itemExtent, prototypeItem and itemExtentBuilder to cut layout work. Do not use for small fixed lists, and not for per-item rebuild scope (flutter-perf-build- and-rebuild).

flutter-perf-profiling-and-validation

Use when capturing a baseline before optimising, confirming an improvement after, or whenever a performance claim needs evidence. Measures and validates Flutter performance work: flutter run --profile on physical devices, DevTools frame timings (UI vs raster), rebuild tracking, memory and oversized-image checks, realistic large datasets, flutter analyze and flutter test, calculation regression comparison, and backend migration checks when models change. Do not use to implement fixes, and never judge performance from debug mode.

flutter-perf-rendering-effects

Use when DevTools shows high raster time or janky raster frames. Optimises only where profiling or implementation evidence shows real cost, and keeps the visual design materially unchanged. Investigates expensive Flutter visual effects and raster cost: Opacity, BackdropFilter, blur, clipping (ClipRRect, ClipPath), large or layered shadows, overlapping transparency, saveLayer, and continuously animated effects. Do not use for UI-thread rebuild problems (flutter-perf-build-and-rebuild).

flutter-performance-specialist

Use when the user asks to audit, profile, speed up, or optimise Flutter performance: jank, slow scrolling, excess rebuilds, large lists, memory, image decoding, CPU-heavy work, or "should this move to the backend". Routes to the focused flutter-perf-* skills and enforces shared guardrails and the final report format. Orchestrates evidence-based performance audits and targeted optimisations of a production Flutter app. Do not use for non-performance Flutter work, new feature development, or backend-only performance tuning.