mcpField
D
dart-concurrency

dart-concurrency

github.com/thienqoDevelopment1576 installsUpdated today
Repository

About dart-concurrency

A concurrency skill guide for Dart developers that makes ownership, ordering, cancellation, and error propagation explicit. It covers Futures, Streams, and isolates, with verification focused on races and lifecycle behavior.

Key features

  1. 01Choose Future or Stream for the work pattern
  2. 02Manage subscription and controller lifecycles
  3. 03Prevent stale requests from replacing newer state
  4. 04Assess isolates for CPU-bound work
  5. 05Preserve stack traces and handle cancellation

Use cases

  1. 01Investigate asynchronous races or resource leaks
  2. 02Prevent older requests from overwriting current UI state
  3. 03Test cancellation, disposal, and out-of-order completion

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/thienqo/flutter-skills --skill dart-concurrency

After installing, type/dart-concurrencyin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

evals/
cases.json
references/
isolate-communication-and-worker-pools.md
stream-cancellation-and-debouncing.md

Details

From the project README

Dart Concurrency

Make ownership, ordering, cancellation, and error propagation explicit.

Diagnose first

Identify the producer, consumer, lifecycle owner, ordering requirement, and desired behavior when work becomes obsolete. Reproduce the race or leak before adding synchronization-like machinery.

Decision rules

  • Use Future for one result and Stream for a sequence over time.
  • Avoid unawaited work unless independence and error handling are intentional.
  • Cancel subscriptions and controllers according to the owning object's lifecycle.
  • Guard UI updates after async gaps with the lifecycle mechanism appropriate to the project.
  • Prevent stale requests from overwriting newer state through cancellation, tokens, sequencing, or latest-wins logic.
  • Use isolates for measured CPU-bound work or isolation needs, not ordinary network I/O.
  • Send transferable values across isolate boundaries and surface failures to the caller.
  • Preserve stack traces when translating errors.

Do not hide async ownership inside global helpers. Keep retry and timeout policy at a boundary that understands idempotency and user intent.

Verification

Test success, failure, cancellation/disposal, and out-of-order completion. Run static analysis; add a focused stress or fake-time test when timing is central to the bug.

References

Sources

Comments

Markdown supported