Agent skill

Squadron Cancelation

by d-markey in d-markey/squadron

A skill your agent uses when implementing task cancelation, handling CancelationToken, propagating cancelation signals across thread/worker boundaries, and dealing with synchronous vs.

MITAuto-check passedDevelopment

Install Squadron Cancelation

skills CLI
$ npx skills add d-markey/squadron --skill squadron-cancelation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install d-markey/squadron squadron-cancelation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/d-markey/squadron.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/squadron-cancelation .claude/skills/squadron-cancelation && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
squadron-cancelation
GitHub stars
138
Token cost
~922 tokens
SKILL.md length
353 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when implementing task cancelation, handling CancelationToken, propagating cancelation signals across thread/worker boundaries, and dealing with synchronous vs.

  • Works in 4 steps: Cooperative Cancelation with… → Synchronous vs. Asynchronous Task… → Alternative: Task Cancelation via… → …
  • Implementing task cancelation
  • SKILL.md covers 1. Cooperative Cancelation…, 2. Synchronous vs.…, 3. Alternative: Task… and 4. Canceling via Worker Pools…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Squadron Cancelation is an agent skill from d-markey/squadron. Use when implementing task cancelation, handling CancelationToken, propagating cancelation signals across thread/worker boundaries, and dealing with synchronous vs. asynchronous cancelation in Squadron.

Its SKILL.md is about 920 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Async programming. It works with Dart. The repository describes itself as: Multithreading and worker thread pool for Dart / Flutter, to offload CPU-bound and heavy I/O tasks to Isolate or Web Worker threads (JS+WASM). The licence is MIT.

When your agent uses it

  • Implementing task cancelation
  • Handling CancelationToken
  • Propagating cancelation signals across thread/worker boundaries
  • Dealing with synchronous vs

Example prompts

  • “/squadron-cancelation”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Cooperative Cancelation with CancelationToken (Recommended Approach)
  2. Synchronous vs. Asynchronous Task Cancelation
  3. Alternative: Task Cancelation via Captured Tasks (ValueTask)
  4. Canceling via Worker Pools (pool.cancel / pool.cancelAll)

What it can do on your machine

Read from SKILL.md and the folder at commit 4ab7f15. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are dart).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Squadron Cancelation loads about 922 tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 353 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~56
When it runs · the whole SKILL.md, loaded when a task matches
~922

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from d-markey/squadron at commit 4ab7f15, republished under its MIT licence (© d-markey). 353 words, ~922 tokens.

Download SKILL.mdSave it as .claude/skills/squadron-cancelation/SKILL.md (or your agent's skills folder).
name
squadron-cancelation
description
Use when implementing task cancelation, handling CancelationToken, propagating cancelation signals across thread/worker boundaries, and dealing with synchronous vs. asynchronous cancelation in Squadron.

Squadron Task Cancelation Guide

Squadron supports propagating task cancelation across thread boundaries (isolates on Native, Web Workers on Web) using the cancelation_token package.

Note on Spelling: Following the cancelation_token package convention, Squadron uses CancelationToken with a single 'l'.

The standard, most robust way to handle task cancelation in Squadron is using a CancelationToken. If your worker method needs to coordinate cancelation from inside the worker thread itself, accept a single, optional CancelationToken parameter in your annotated method:

dart
@SquadronMethod()
Future<String> computeLongTask(int iterations, [CancelationToken? token]) async {
  for (int i = 0; i < iterations; i++) {
    // 1. Periodically check if cancelation was requested
    token?.throwIfCanceled();

    // Do work...
    await Future.delayed(Duration(milliseconds: 100));
  }
  return 'Completed';
}
  • Client-Side Trigger: When the main thread cancels the token (token.cancel()), Squadron automatically notifies the background worker that the task was canceled.
  • Worker-Side Responsibility: It is the explicit responsibility of the task implementation to periodically check the token (e.g., via token?.throwIfCanceled() or checking token?.isCanceled == true) and abort execution when necessary.
  • Dropping Results: Once canceled, the future awaiting the worker's result on the main thread is resolved with a CanceledException (or TaskCanceledException), and any eventual results produced by the worker are dropped.
Show full SKILL.md (189 more words)Show less

2. Synchronous vs. Asynchronous Task Cancelation

It is crucial to understand how execution flow affects cancelation handling:

  • Asynchronous Methods (async): The worker thread can yield control back to the event loop, allowing Squadron to receive the cancelation notification immediately and throw/abort during periodic checks.
  • Synchronous Methods (FutureOr<> with no async body / heavy blocking work):
    • The task cannot be truly interrupted midway.
    • On the main thread, the future awaiting the worker's result will still appear canceled (resolving with a CanceledException) immediately when the token is canceled.
    • However, on the worker thread, the heavy synchronous computation monopolizes the event loop, meaning the cancelation notification cannot be processed or handled until the synchronous execution fully terminates.

3. Alternative: Task Cancelation via Captured Tasks (ValueTask)

You can also cancel tasks without explicitly passing a CancelationToken by capturing the returned ValueTask handle from a worker pool instead of awaiting the invocation immediately:

dart
// 1. Capture the task handle from a worker pool instead of awaiting directly
final task = workerPool.computeLongTask(100);

// 2. Cancel the task later if needed
task.cancel('User aborted task');

try {
  final result = await task.value;
} on CanceledException catch (ex) {
  // Handles cancelation
}

4. Canceling via Worker Pools (pool.cancel / pool.cancelAll)

When working with WorkerPool, you can manage and cancel tasks directly at the pool level:

  • pool.cancel(task, [String? message]): Cancels a specific captured task.
  • pool.cancelAll([String? message]): Cancels all active and queued tasks across the worker pool.

© d-markey, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/squadron-cancelation of d-markey/squadron.

Open the folder on GitHubat commit 4ab7f15

Compare with similar skills

Squadron Cancelation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Squadron Cancelation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Squadron Cancelation this skilld-markey/squadron138—~922Automated safety check: PassMIT
Signals Core Advanced Primitivesrodydavis/signals.dart819—~1.7kAutomated safety check: PassApache-2.0
Dart LanguageHoangNguyen0403/agent-skills-standard571—~820Automated safety check: PassMIT
Flutter Handling Concurrencybtwld/superdeck130—~1.8kAutomated safety check: PassBSD-3-Clause
Flutter ConcurrencyHoangNguyen0403/agent-skills-standard571—~680Automated safety check: PassMIT
Code Reviewflutter/flutter179k—~1.4kAutomated safety check: PassBSD-3-Clause

Similar skills

  • Signals Core Advanced Primitives

    rodydavis/signals.dart

    Reference for the advanced parts of Dart's signals_core: reactive primitives, async signals, reactive collections and utility types, with a linked page for each.

    819 GitHub stars~1.7k tokensUpdated 25 days ago
    DevelopmentAuto-check passed
  • Dart Language

    HoangNguyen0403/agent-skills-standard

    Dart 3.x language feature standards: null safety, records, sealed classes, switch pattern matching, extensions, and async/await.

    571 GitHub stars~820 tokensUpdated today
    DevelopmentAuto-check passed
  • Executes long-running tasks in background isolates to keep the UI responsive.

    130 GitHub stars~1.8k tokensUpdated 11 days ago
    MobileAuto-check passed
  • Flutter Concurrency

    HoangNguyen0403/agent-skills-standard

    Execute long-running tasks in background isolates to keep the UI responsive.

    571 GitHub stars~680 tokensUpdated today
    MobileAuto-check passed
  • Code Review

    flutter/flutter

    Performs a comprehensive, multi-step code review of pull requests or local code changes, using iterative refinement (generation, critique, synthesis) to ensure high-quality, actionable feedback.

    179k GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check passed
  • YugabyteDB ASH Instrumentation

    yugabyte/yugabyte-db

    Procedure for adding or changing YugabyteDB Active Session History wait states in TServer and DocDB C++ code, including the macro to use for sync and async paths.

    11k GitHub stars~4.5k tokensUpdated today
    DevelopmentAuto-check passed

More from d-markey/squadron

  • Squadron Marshaling

    d-markey/squadron

    A skill your agent uses when handling custom classes, object serialization, deserialization, and custom marshalers (SquadronMarshaler, GenericMarshaler, MarshalingContext) for cross-platform worker…

    138 GitHub stars~2.6k tokensUpdated 17 days ago
    Auto-check passed
  • Squadron Worker

    d-markey/squadron

    A skill your agent uses when building, writing, or refactoring Squadron workers, worker pools, worker services, or using squadronbuilder annotations (@SquadronService, @SquadronMethod) for…

    138 GitHub stars~1.6k tokensUpdated 17 days ago
    Auto-check passed

Works with

Categories

Questions about Squadron Cancelation

What does Squadron Cancelation do?

A skill your agent uses when implementing task cancelation, handling CancelationToken, propagating cancelation signals across thread/worker boundaries, and dealing with synchronous vs. Squadron Cancelation is an agent skill from d-markey/squadron. Use when implementing task cancelation, handling CancelationToken, propagating cancelation signals across thread/worker boundaries, and dealing with synchronous vs.

When should I use Squadron Cancelation?

Squadron Cancelation fits situations like: implementing task cancelation; handling CancelationToken; propagating cancelation signals across thread/worker boundaries; dealing with synchronous vs.

How do I install Squadron Cancelation in Claude Code?

Run `npx skills add d-markey/squadron --skill squadron-cancelation -a claude-code`. Or copy the skill folder (skills/squadron-cancelation in d-markey/squadron) into .claude/skills/squadron-cancelation in your project. Claude Code loads it when a task matches its description.

How do I install Squadron Cancelation in Codex?

Run `npx skills add d-markey/squadron --skill squadron-cancelation -a codex`. Or copy the skill folder (skills/squadron-cancelation in d-markey/squadron) into .agents/skills/squadron-cancelation in your project. Codex loads it when a task matches its description.

Can I use Squadron Cancelation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add d-markey/squadron --skill squadron-cancelation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/squadron-cancelation, .gemini/skills/squadron-cancelation, .github/skills/squadron-cancelation and .opencode/skills/squadron-cancelation in your project.

What does Squadron Cancelation need to run?

SKILL.md names no scripts, command-line tools or credentials: Squadron Cancelation is instructions for the agent only.

Does Squadron Cancelation access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Squadron Cancelation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Squadron Cancelation use?

Squadron Cancelation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Squadron Cancelation use?

About 922 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Squadron Cancelation?

Skills that share tags, products or a category with Squadron Cancelation: Signals Core Advanced Primitives (rodydavis/signals.dart, 819 stars), Dart Language (HoangNguyen0403/agent-skills-standard, 571 stars), Flutter Handling Concurrency (btwld/superdeck, 130 stars) and Flutter Concurrency (HoangNguyen0403/agent-skills-standard, 571 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Squadron Cancelation?

d-markey (a GitHub user) maintains it in d-markey/squadron, which has 138 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 22, 2026.

Source: d-markey/squadron on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.