agentleFS
thiennc-tesoglobalthiennc-tesoglobal/flutter-skills/skills/flutter-runtime-debugging/SKILL.md

flutter-runtime-debugging

Skill16 starsChanged 2 months agoBSD-3-ClauseView on GitHub

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.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read SDK constraints, flavors, entrypoints, defines, target platforms, recent changes, and existing logs or crash artifacts.

    line 12
  2. Distinctive:

    Do not infer a root cause from the last stack frame, a screenshot, or a downstream assertion alone.

    line 14
  3. Distinctive:

    Use Dart and Flutter MCP capabilities for widget-tree inspection, structured logs, and runtime diagnostics when the environment exposes …

    line 16
  4. Distinctive:

    Read reproduction and attachment when selecting a target, attaching to an existing process, handling startup or lifecycle failures, or …

    line 20
  5. Distinctive:

    Read DevTools diagnosis when using the inspector, debugger, logging, network, memory, CPU, or frame views to test a concrete hypothesis.

    line 21
  6. Distinctive:

    Use framework error details, causal stacks, structured logs, breakpoints, watches, and controlled state changes.

    line 25

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 when selecting a target, attaching to an existing process, handling startup or lifecycle failures, or reducing a flaky symptom.
  • Read DevTools diagnosis 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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.