Skip to content
Skills Library
Programming · Analysis

flutter-runtime-debugging

/flutter-runtime-debugging

Reproduce, inspect, diagnose, and fix Flutter failures in a running app using logs, debugger attachment, DevTools, framework diagnostics, and minimal experiments. Use for runtime exceptions, incorrect live state, hangs, lifecycle failures, or failures that require execution evidence; route benchmarked jank to flutter-performance and planned device-flow verification to flutter-device-testing.

Licence
BSD-3-Clause
Last repository change
05.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
4
Scripts
0
HTML comments
0
URLs in SKILL.md
5
Deprecation

No signals detected. Repository changed on 05.10.2026, without references to retired models or APIs.

Licence

BSD-3-Clause, otwarta.

What it does and when to use it

Reproduce, inspect, diagnose, and fix Flutter failures in a running app using logs, debugger attachment, DevTools, framework diagnostics, and minimal experiments. Use for runtime exceptions, incorrect live state, hangs, lifecycle failures, or failures that require execution evidence; route benchmarked jank to flutter-performance and planned device-flow verification to flutter-device-testing.

Original author description

Reproduce, inspect, diagnose, and fix Flutter failures in a running app using logs, debugger attachment, DevTools, framework diagnostics, and minimal experiments. Use for runtime exceptions, incorrect live state, hangs, lifecycle failures, or failures that require execution evidence; route benchmarked jank to flutter-performance and planned device-flow verification to flutter-device-testing.

How it works

  1. Establish the runtime
  2. Load references conditionally
  3. Diagnose narrowly
  4. Boundaries
  5. Verification
  6. Sources
Original SKILL.md headings · 48 lines, 548 words
SKILL.md preview
---
name: flutter-runtime-debugging
description: Reproduce, inspect, diagnose, and fix Flutter failures in a running app using logs, debugger attachment, DevTools, framework diagnostics, and minimal experiments. Use for runtime exceptions, incorrect live state, hangs, lifecycle failures, or failures that require execution evidence; route benchmarked jank to flutter-performance and planned device-flow verification to flutter-device-testing.
---

# Flutter Runtime Debugging

Turn a reported symptom into a repeatable failure, identify the first incorrect state or failing boundary, apply the smallest supported fix, and repeat the same flow as evidence.

## Establish the runtime

Read SDK constraints, flavors, entrypoints, defines, target platforms, recent changes, and existing logs or crash artifacts. Discover available devices and running applications before launching another copy. Preserve the user's chosen target and environment when they are material to the failure.

Do not infer a root cause from the last stack frame, a screenshot, or a downstream assertion alone. Record the exact trigger, expected result, actual result, build mode, platform, and whether the failure survives restart.

Use Dart and Flutter MCP capabilities for widget-tree inspection, structured logs, and runtime diagnostics when the environment exposes them; otherwise rely on DevTools and CLI output for the same evidence.

## Load references conditionally

- Read [reproduction and attachment](references/reproduction-and-attachment.md) when selecting a target, attaching to an existing process, handling startup or lifecycle failures, or reducing a flaky symptom.
- Read [DevTools diagnosis](references/devtools-diagnosis.md) when using the inspector, debugger, logging, network, memory, CPU, or frame views to test a concrete hypothesis.

## Diagnose narrowly

Use framework error details, causal stacks, structured logs, breakpoints, watches, and controlled state changes. Follow data and ownership across widget, state, isolate, transport, plugin, and native boundaries only as far as the evidence leads.

Before choosing a fix, require the first incorrect transition at every implicated boundary. For permission or lifecycle failures, explicitly trace the native callback, plugin or channel result and error mapping, application state owner, and resumed or disposed consumer. Do not stop at naming possible causes or pre-commit to a defensive null check.

Change one relevant variable at a time. Temporary instrumentation must be bounded, redact sensitive data, and be removed or converted into appropriate durable diagnostics before completion.

Hot reload preserves state and is not proof that startup, registration, initialization, generated code, or native configuration is correct. For plugin or native registration changes, perform a full rebuild and clean-process launch on every affected supported target before the first Dart call. Inspect startup and registration logs for errors, and verify that unsupported targets fail through the package's documented behavior rather than an accidental missing-plugin path. Reinstall when stale native artifacts or installation state could survive the rebuild.

## Boundaries

- `flutter-device-testing` owns executing a specified acceptance flow on a concrete device when diagnosis is not the task.
- `flutter-performance` owns profile-mode traces and before/after performance claims; use runtime debugging only to isolate a functional failure or candidate cause.
- `flutter-testing` owns durable automated test strategy; add a regression test after the runtime cause is understood.
- `flutter-observability` owns production telemetry design and backend ingestion, though its evidence can seed a local reproduction.
- `flutter-platform-integration` owns fixes inside channels, FFI, plugins, platform views, or native lifecycle code once that boundary is implicated.

## Verification

Repeat the original failing flow under equivalent conditions, then exercise the nearest error and lifecycle paths. Add the smallest durable regression test at the layer that owns the defect. State the target, build mode, commands or tools used, evidence observed, and anything not reproduced or verified.

## Sources

- [Flutter DevTools](https://docs.flutter.dev/tools/devtools)
- [Debug Flutter apps](https://docs.flutter.dev/testing/debugging)
- [Handling errors in Flutter](https://docs.flutter.dev/testing/errors)
- [Debugging add-to-app](https://docs.flutter.dev/add-to-app/debugging)
- [Dart and Flutter MCP server](https://docs.flutter.dev/ai/mcp-server)
Files in this package (4)
  • SKILL.md 4 KB
  • evals/cases.json 3 KB
  • references/devtools-diagnosis.md 2 KB
  • references/reproduction-and-attachment.md 3 KB

Versions

The database has no other skills named flutter-runtime-debugging.

Database snapshot: 13.11.2026 · package version 05cdf3dbfa39 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100flutter-performance
    Profile and improve Flutter runtime performance using profile-mode evidence, DevTools, frame analysis, rebuild inspection, memory, and app-size tools. Use for jank, slow startup, excessive work, leaks, or size regressions; route production logs, errors, and traces to flutter-observability.
  • 100flutter-performance-profiling
    Use when a Flutter app janks, drops frames, is slow to start, or feels heavy — diagnose with DevTools timeline, profile mode, the raster vs UI thread split, shader jank, and startup tracing, then fix the specific cause. Goes beyond the official flutter-fix-layout-issues (which…
  • 100flutter-performance
    Profile and improve Flutter runtime performance using profile-mode evidence, DevTools, frame analysis, rebuild inspection, memory, and app-size tools. Use for jank, slow startup, excessive work, leaks, or size regressions; route production logs, errors, and traces to flutter-observability.
  • 100flutter-device-testing
    Operate and verify Flutter apps on a concrete emulator, simulator, browser, desktop, or physical device. Use for target lifecycle, platform-state checks, runtime evidence, and live integration flows; pair with flutter-navigation for route correctness, and do not select it for…
  • 90inspect-runtime
    Use when reading state from a running PlayCanvas app, to reach its live Application through the Engine devtools hook without changing app code.
  • 100flutter-device-testing
    Operate and verify Flutter apps on a concrete emulator, simulator, browser, desktop, or physical device. Use for target lifecycle, platform-state checks, runtime evidence, and live integration flows; pair with flutter-navigation for route correctness, and do not select it for…

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.