#392 by GitHub stars
flutter/agent-plugins
Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains correct and regression-free.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/dart-add-unit-test/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-build-cli-app/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-collect-coverage/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-fix-runtime-errors/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-generate-test-mocks/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-migrate-to-checks-package/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-resolve-package-conflicts/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-run-static-analysis/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-setup-ffi-assets/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-use-doc-examples/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-use-ffigen/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-use-path-package/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-use-pattern-matching/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-use-primary-constructors/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/dart-write-documentation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-add-integration-test/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-add-widget-preview/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-add-widget-test/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-apply-architecture-best-practices/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-build-responsive-layout/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-fix-layout-issues/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-implement-json-serialization/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-setup-declarative-routing/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-setup-localization/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
skills/flutter-use-http-package/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Network or broad shell
90fa51dc9d1b → 774dc2c1e7fa
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 90fa51dc9d1b
No earlier version was observed for comparison.
Verified commit 774dc2c1e7fa748b792ef4d12580ca73686f82a5
git clone --filter=blob:none --no-checkout https://github.com/flutter/agent-plugins.git .hotskills/flutter-agent-plugins && git -C .hotskills/flutter-agent-plugins checkout --detach 774dc2c1e7fa748b792ef4d12580ca73686f82a5
# Copy each selected skill directory from .hotskills/flutter-agent-plugins into .claude/skills/<skill-name>/Heat
6.1- Star growth, last 7 daysAhead of 83% of tracked repositories
- Star growth, last 24 hoursAhead of 70% of tracked repositories
- Rank movement, last 7 daysAhead of 38% of tracked repositories
- Commits, last 30 daysAhead of 77% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- dart-add-unit-test
skills/dart-add-unit-test - dart-build-cli-app
skills/dart-build-cli-app - dart-collect-coverage
skills/dart-collect-coverage - dart-fix-runtime-errors
skills/dart-fix-runtime-errors - dart-generate-test-mocks
skills/dart-generate-test-mocks - dart-migrate-to-checks-package
skills/dart-migrate-to-checks-package - dart-resolve-package-conflicts
skills/dart-resolve-package-conflicts - dart-run-static-analysis
skills/dart-run-static-analysis - dart-setup-ffi-assets
skills/dart-setup-ffi-assets - dart-use-doc-examples
skills/dart-use-doc-examples - dart-use-ffigen
skills/dart-use-ffigen - dart-use-path-package
skills/dart-use-path-package - dart-use-pattern-matching
skills/dart-use-pattern-matching - dart-use-primary-constructors
skills/dart-use-primary-constructors - dart-write-documentation
skills/dart-write-documentation - flutter-add-integration-test
skills/flutter-add-integration-test - flutter-add-widget-preview
skills/flutter-add-widget-preview - flutter-add-widget-test
skills/flutter-add-widget-test - flutter-apply-architecture-best-practices
skills/flutter-apply-architecture-best-practices - flutter-build-responsive-layout
skills/flutter-build-responsive-layout - flutter-fix-layout-issues
skills/flutter-fix-layout-issues - flutter-implement-json-serialization
skills/flutter-implement-json-serialization - flutter-setup-declarative-routing
skills/flutter-setup-declarative-routing - flutter-setup-localization
skills/flutter-setup-localization - flutter-use-http-package
skills/flutter-use-http-package
How it works
dart-add-unit-test
When your agent uses it
Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains correct and regression-free.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
1,067 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Structuring Test Files
- Writing Tests
- Executing Tests
- Test Implementation Workflow
- Examples
Files
../../.agents/hooks.jsonasset399 bytes../../.agents/hooks.jsonasset399 bytes../../.agents/hooks.jsonasset399 bytes../../.claude-plugin/marketplace.jsonasset646 bytes../../.claude-plugin/plugin.jsonasset817 bytesSKILL.mdcore4,709 bytes
Read SKILL.md
# Testing Dart and Flutter Applications
## Contents
- [Structuring Test Files](#structuring-test-files)
- [Writing Tests](#writing-tests)
- [Executing Tests](#executing-tests)
- [Test Implementation Workflow](#test-implementation-workflow)
- [Examples](#examples)
## Structuring Test Files
Organize test files to mirror the `lib` directory structure to maintain predictability.
* Place all test code within the `test` directory at the root of the package.
* Append `_test.dart` to the end of all test file names (e.g., `lib/src/utils.dart` should be tested in `test/src/utils_test.dart`).
* If writing integration tests, place them in an `integration_test` directory at the root of the package.View the complete source on GitHubdart-build-cli-app
When your agent uses it
Architectural patterns, entrypoint structure, exit codes, stream routing, and subprocess spawning for Dart command-line interface (CLI) applications. Use when building CLI tools, console utilities, scripts, argument parsing with `package:args` (ArgParser or CommandRunner), handling exit codes, configuring executables in pubspec.yaml, spawning Dart subprocesses, or compiling native CLI binaries. Don't use for Flutter UI widgets, web applications, or standalone HTTP backend servers.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
3,314 tokensWhen the skill is activated
Reference documents
1,922 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- 1. Core Architecture & Process Lifecycle
- 2. Output, Diagnostics & Formatting
- 3. Project Configuration & Packaging
- 4. Argument Parsing & Command Routing
- 5. Native Async & Modern Stack Traces
- 6. Subprocess Spawning & AOT Resilience
- 7. Signal Handling & Terminal Teardown
- 8. Testing CLI Applications
- 9. Modern Compilation & Distribution
- 10. Workflows & Audit Checklist
- References & Examples
Files
SKILL.mdcore13,828 bytesexamples/multi_command_runner.dartasset2,508 bytesexamples/single_command_tool.dartasset2,365 bytesreferences/aot_sdk_discovery.mddoc3,981 bytesreferences/signals_and_terminal.mddoc4,144 bytes
Read SKILL.md
# Building Dart CLI Applications
## Contents
* [1. Core Architecture & Process Lifecycle](#1-core-architecture--process-lifecycle)
* [2. Streams, Diagnostics & Formatting](#2-streams-diagnostics--formatting)
* [3. Project Configuration & Packaging](#3-project-configuration--packaging)
* [4. Argument Parsing & Command Routing](#4-argument-parsing--command-routing)
* [5. Native Async & Modern Stack Traces](#5-native-async--modern-stack-traces)
* [6. Subprocess Spawning & AOT Resilience](#6-subprocess-spawning--aot-resilience)
* [7. Signal Handling & Terminal Teardown](#7-signal-handling--terminal-teardown)
* [8. Testing CLI Applications](#8-testing-cli-applications)
* [9. Modern Compilation & Distribution](#9-modern-compilation--distribution)
* [10. Workflows & Audit Checklist](#10-workflows--audit-checklist)
* [References & Examples](#references--examples)View the complete source on GitHubdart-collect-coverage
When your agent uses it
Collect coverage using the coverage packge and create an LCOV report
What it loads into context
Frontmatter
59 tokensAlways available to the agent
SKILL.md
1,182 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Testing Fundamentals
- Coverage Directives
- Workflow: Configuring and Generating Coverage Reports
- Workflow: Advanced Manual Coverage Collection
- Examples
Files
SKILL.mdcore4,893 bytesSKILL.mdcore4,893 bytesSKILL.mdcore4,893 bytesSKILL.mdcore4,893 bytesSKILL.mdcore4,893 bytesSKILL.mdcore4,893 bytesSKILL.mdcore4,893 bytes
Read SKILL.md
# Implementing Dart and Flutter Test Coverage
## Contents
- [Testing Fundamentals](#testing-fundamentals)
- [Coverage Directives](#coverage-directives)
- [Workflow: Configuring and Generating Coverage Reports](#workflow-configuring-and-generating-coverage-reports)
- [Workflow: Advanced Manual Coverage Collection](#workflow-advanced-manual-coverage-collection)
- [Examples](#examples)
## Testing Fundamentals
Structure your test suites using the standard Dart testing paradigms. Use `package:test` for Dart projects and `flutter_test` for Flutter projects.
- **Unit Tests:** Verify individual functions, methods, or classes.
- **Component/Widget Tests:** Verify component behavior, layout, and interaction using mock objects (`package:mockito`).View the complete source on GitHubdart-fix-runtime-errors
When your agent uses it
Uses get_runtime_errors and lsp to fetch an active stack trace, locate the failing line, apply a fix, and verify resolution via hot_reload.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
1,491 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Core Concepts & Guidelines
- Workflows
- Examples
Files
SKILL.mdcore6,257 bytesSKILL.mdcore6,257 bytesSKILL.mdcore6,257 bytesSKILL.mdcore6,257 bytes
Read SKILL.md
# Resolving Dart Static Analysis Errors
## Contents
- [Core Concepts & Guidelines](#core-concepts--guidelines)
- [Type System & Soundness](#type-system--soundness)
- [Null Safety](#null-safety)
- [Error Handling](#error-handling)
- [Workflows](#workflows)
- [Workflow: Static Analysis Resolution](#workflow-static-analysis-resolution)
- [Examples](#examples)
## Core Concepts & Guidelines
### Type System & Soundness
Enforce Dart's sound type system to prevent runtime invalid states.View the complete source on GitHubdart-generate-test-mocks
When your agent uses it
Define and generate mock objects for external dependencies using `package:mockito` and `build_runner`. Use when unit testing classes that depend on complex external services like APIs or databases.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
1,468 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Structuring Code for Testability
- Managing Dependencies
- Generating Mocks
- Implementing Unit Tests
- Workflow: Creating and Running Mocked Tests
- Examples
Files
SKILL.mdcore6,339 bytes
Read SKILL.md
# Testing and Mocking Dart Applications
## Contents
- [Structuring Code for Testability](#structuring-code-for-testability)
- [Managing Dependencies](#managing-dependencies)
- [Generating Mocks](#generating-mocks)
- [Implementing Unit Tests](#implementing-unit-tests)
- [Workflow: Creating and Running Mocked Tests](#workflow-creating-and-running-mocked-tests)
- [Examples](#examples)
## Structuring Code for Testability
Design Dart classes to support dependency injection. Isolate complex external dependencies (like API clients or databases) so they can be replaced with mock objects during testing.
- Inject external services (e.g., `http.Client`) through class constructors.
- Represent URLs strictly as `Uri` objects using `Uri.parse(string)`.View the complete source on GitHubdart-migrate-to-checks-package
When your agent uses it
Replace the usage of `expect` and similar functions from `package:matcher` to `package:checks` equivalents.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
5,034 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- When to Use This Skill
- How to Use This Skill (The Workflow)
- Key Syntax Differences and Pitfalls
- Matcher-to-Checks Mapping Table
- Matchers with No Direct Replacements
- Writing Custom Expectations (Replacing Custom Matchers)
- Strategies for Discovery
- Examples
Files
SKILL.mdcore19,324 bytesSKILL.mdcore19,324 bytesSKILL.mdcore19,324 bytesSKILL.mdcore19,324 bytesSKILL.mdcore19,324 bytes
Read SKILL.md
# Migrating Dart Tests to Package Checks
Use this skill when you need to migrate a Dart test suite from the legacy
`package:matcher` (which is exported by default from `package:test/test.dart`)
to the modern, type-safe, and literate `package:checks` assertion library.
## Contents
- [When to Use This Skill](#when-to-use-this-skill)
- [How to Use This Skill (The Workflow)](#how-to-use-this-skill-the-workflow)
- [Key Syntax Differences and Pitfalls](#key-syntax-differences-and-pitfalls)
- [Matcher-to-Checks Mapping Table](#matcher-to-checks-mapping-table)
- [Matchers with No Direct Replacements](#matchers-with-no-direct-replacements)
- [Strategies for Discovery](#strategies-for-discovery)
- [Examples](#examples)
View the complete source on GitHubdart-resolve-package-conflicts
When your agent uses it
Workflow for fixing package version conflicts. Use this when `pub get` fails due to incompatible package versions.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
1,231 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Core Concepts
- Version Constraints
- Workflow: Auditing Dependencies
- Workflow: Upgrading Dependencies
- Workflow: Resolving Version Conflicts
- Examples
Files
SKILL.mdcore5,267 bytesSKILL.mdcore5,267 bytes
Read SKILL.md
# Managing Dart Dependencies
## Contents
- [Core Concepts](#core-concepts)
- [Version Constraints](#version-constraints)
- [Workflow: Auditing Dependencies](#workflow-auditing-dependencies)
- [Workflow: Upgrading Dependencies](#workflow-upgrading-dependencies)
- [Workflow: Resolving Version Conflicts](#workflow-resolving-version-conflicts)
- [Examples](#examples)
## Core Concepts
Dart enforces a strict single-version rule for dependencies: a project and all its transitive dependencies must resolve to a single, shared version of any given package. This prevents runtime type mismatches but introduces the risk of "version lock."
To mitigate version lock, Dart relies on version constraints rather than pinned versions in the `pubspec.yaml`. The `pubspec.lock` file maintains the exact resolved versions for reproducible builds.View the complete source on GitHubdart-run-static-analysis
When your agent uses it
Execute `dart analyze` to identify warnings and errors, and use `dart fix --apply` to automatically resolve mechanical lint issues. Use during development to ensure code quality and before committing changes.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
1,198 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Analysis Configuration
- Diagnostic Suppression
- Workflow: Executing Static Analysis
- Workflow: Applying Automated Fixes
- Examples
Files
SKILL.mdcore5,033 bytesSKILL.mdcore5,033 bytesSKILL.mdcore5,033 bytes
Read SKILL.md
# Analyzing and Fixing Dart Code
## Contents
- [Analysis Configuration](#analysis-configuration)
- [Diagnostic Suppression](#diagnostic-suppression)
- [Workflow: Executing Static Analysis](#workflow-executing-static-analysis)
- [Workflow: Applying Automated Fixes](#workflow-applying-automated-fixes)
- [Examples](#examples)
## Analysis Configuration
Configure the Dart analyzer using the `analysis_options.yaml` file located at the package root.
- **Base Configuration:** Always include a standard rule set (e.g., `package:lints/recommended.yaml` or `package:flutter_lints/flutter.yaml`) using the `include:` directive.
- **Strict Type Checks:** Enable strict type checks under the `analyzer: language:` node to prevent implicit downcasts and dynamic inferences. Set `strict-casts: true`, `strict-inference: true`, and `strict-raw-types: true`.View the complete source on GitHubdart-setup-ffi-assets
When your agent uses it
Guides agents in compiling and packaging C/C++ source code into dynamic or static libraries (Code Assets) using Dart's Native Assets hook system (via hook/build.dart and hook/link.dart utilizing package:hooks and package:native_toolchain_c). Use when a user asks to: 'setup native assets', 'compile C/C++ source code', 'bundle dynamic libraries', 'build native C code', 'link native assets', 'implement build.dart or link.dart hooks', or 'integrate C/C++ interop in Dart/Flutter'. Helps agents avoid manual toolchain orchestration and configures secure hash-validated binary downloads or advanced linker tree-shaking with package:record_use mapping.
What it loads into context
Frontmatter
185 tokensAlways available to the agent
SKILL.md
4,340 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Introduction
- Constraints
- Native Interop Packages
- Step-by-Step Workflow
- Choosing an Integration Approach
- Method 1: Local Compilation with Linker Tree-Shaking (Recommended)
- Method 2: Downloading Precompiled Dynamic Libraries
- Verification Checklist
Files
SKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytesSKILL.mdcore18,899 bytes
Read SKILL.md
# Compiling C Code into Code Assets with Native Assets Hooks
Integrate and automate the compilation and packaging of native C/C++ source code into **Code Assets** under Dart's overarching **Native Assets** feature using build and link hooks.
## Contents
- [Introduction](#introduction)
- [Constraints](#constraints)
- [Native Interop Packages](#native-interop-packages)
- [Step-by-Step Workflow](#step-by-step-workflow)
- [Choosing an Integration Approach](#choosing-an-integration-approach)
- [Method 1: Local Compilation with Linker Tree-Shaking (Recommended)](#method-1-local-compilation-with-linker-tree-shaking-recommended)
- [Prerequisite Host Compiler Toolchains](#prerequisite-host-compiler-toolchains)
- [C Source and Bindings Setup](#c-source-and-bindings-setup)
- [Defining the C Library Build Spec](#defining-the-c-library-build-spec)
- [Implementing hook/build.dart](#implementing-hookbuilddart)View the complete source on GitHubdart-use-doc-examples
When your agent uses it
How to inject external code examples into Dartdoc using the {@example} directive, and how to filter those files using #hide, #region, and #endregion tags.
What it loads into context
Frontmatter
45 tokensAlways available to the agent
SKILL.md
1,251 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- 1. The `{@example}` Directive
- 2. Using Regions
- 3. Hiding Setup Code
- 4. Marker Filtering Rules
- 5. Placement and Path Resolution
- 6. Verification
Files
SKILL.mdcore5,344 bytes
Read SKILL.md
# Using Examples in Dartdoc
## Contents
* [1. The `{@example}` Directive](#1-the-example-directive)
* [2. Using Regions](#2-using-regions)
* [3. Hiding Setup Code](#3-hiding-setup-code)
* [4. Marker Filtering Rules](#4-marker-filtering-rules)
* [5. Placement and Path Resolution](#5-placement-and-path-resolution)
* [6. Verification](#6-verification)
When writing documentation that requires multi-line code examples, you should generally extract those examples into standalone `.dart` files and inject them using the `{@example}` directive, rather than writing them inline inside `///` comments. This ensures the examples can be analyzed, linted, and executed.
## 1. The `{@example}` Directive
The `{@example}` directive parses an external file and resolves it into a fenced Markdown code block in the generated documentation.View the complete source on GitHubdart-use-ffigen
When your agent uses it
Guide agents to use `package:ffigen` to automatically generate FFI bindings instead of writing them manually. Use this skill when a task involves writing new FFI bindings, extending C/Objective-C/Swift integrations, or replacing hand-crafted `dart:ffi` setups.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
2,684 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Introduction
- Constraints
- FFIgen Overview
- Step-by-Step Workflow
- Concrete Example: Binding a C Library
- Verification Checklist
Files
SKILL.mdcore11,636 bytesSKILL.mdcore11,636 bytesSKILL.mdcore11,636 bytesSKILL.mdcore11,636 bytesSKILL.mdcore11,636 bytesSKILL.mdcore11,636 bytesSKILL.mdcore11,636 bytes
Read SKILL.md
# Generating FFI Bindings using package:ffigen
## Contents
- [Introduction](#introduction)
- [Constraints](#constraints)
- [FFIgen Overview](#ffigen-overview)
- [Step-by-Step Workflow](#step-by-step-workflow)
- [Concrete Example: Binding a C Library](#concrete-example-binding-a-c-library)
- [Verification Checklist](#verification-checklist)
## Introduction
Automate and standardize the generation of FFI bindings using `package:ffigen` (`FfiGenerator`). Writing FFI bindings by hand is error-prone, brittle, and highly discouraged.
## ConstraintsView the complete source on GitHubdart-use-path-package
When your agent uses it
Cross-platform file and directory path manipulation, segment splitting, extension extraction, and context conversion using `package:path` and `package:file`. Use when writing, inspecting, joining, splitting, or refactoring file paths, directory names, or extensions, or replacing raw string path operations (`.split('/')`, `'$dir/$file'`, `.endsWith('.ext')`, `.replaceAll('\\', '/')`). Don't use for HTTP network URI routing, database query strings, or non-path string processing.
What it loads into context
Frontmatter
146 tokensAlways available to the agent
SKILL.md
2,855 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- 1. Core Principles & Cross-Platform Rules
- 2. Recommended package:path Idioms vs. String Anti-Patterns
- 3. Bridging Native Paths to POSIX, Git, & URL Contexts
- 4. Mockable File Systems (`package:file` vs. Global `p.*`)
- 5. Extensions, Compound Extensions & Stem Extraction
- 6. Workflows & Audit Checklist
- References & Examples
Files
SKILL.mdcore11,279 bytesexamples/cross_platform_paths.dartasset1,859 bytesexamples/file_system_context.dartasset1,035 bytes
Read SKILL.md
# Safe Cross-Platform Path Manipulation in Dart
## Contents
* [1. Core Principles & Cross-Platform Rules](#1-core-principles--cross-platform-rules)
* [2. Recommended package:path Idioms vs. String Anti-Patterns](#2-recommended-packagepath-idioms-vs-string-anti-patterns)
* [3. Bridging Native Paths to POSIX, Git, & URL Contexts](#3-bridging-native-paths-to-posix-git--url-contexts)
* [4. Mockable File Systems (`package:file` vs. Global `p.*`)](#4-mockable-file-systems-packagefile-vs-global-p)
* [5. Extensions, Compound Extensions & Stem Extraction](#5-extensions-compound-extensions--stem-extraction)
* [6. Workflows & Audit Checklist](#6-workflows--audit-checklist)
* [References & Examples](#references--examples)
---
## 1. Core Principles & Cross-Platform RulesView the complete source on GitHubdart-use-pattern-matching
When your agent uses it
Applies Dart 3 pattern matching, switch expressions, and destructuring idiomatically to validate data schemas, handle algebraic data types, and decompose control flow. Use when refactoring complex if-else chains, parsing polymorphic JSON or API responses, destructuring Lists, URI/path segments, String.split() tokens, Records, or Maps, or enforcing exhaustiveness on sealed classes. Don't use for simple boolean conditions, single-variable type promotion (use `is`), or basic collection filtering.
What it loads into context
Frontmatter
158 tokensAlways available to the agent
SKILL.md
3,259 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Pattern Selection Strategy
- Switch Statements vs. Expressions
- Core Pattern Implementations
- Pragmatic Balance & Anti-Patterns
- Workflows
- Examples
Files
SKILL.mdcore13,732 bytesexamples/json_patterns.dartasset2,642 bytes
Read SKILL.md
# Implementing Dart Patterns
## Contents
- [Pattern Selection Strategy](#pattern-selection-strategy)
- [Switch Statements vs. Expressions](#switch-statements-vs-expressions)
- [Core Pattern Implementations](#core-pattern-implementations)
- [Pragmatic Balance & Anti-Patterns](#pragmatic-balance--anti-patterns)
- [Workflows](#workflows)
- [Examples](#examples)
## Pattern Selection Strategy
Apply specific pattern types based on the data structure and desired outcome. Follow these conditional guidelines:
* **If validating and extracting from deserialized data (e.g., JSON):** Use Map, List, and Object patterns to validate schema structure and destructure properties in a single step.View the complete source on GitHubdart-use-primary-constructors
When your agent uses it
Help users write syntactically and semantically correct primary constructors in Dart, and migrate/use the new constructor syntax, empty-body semicolon syntax, in-body initializer list syntax, and abbreviated concise constructor syntax.
What it loads into context
Frontmatter
89 tokensAlways available to the agent
SKILL.md
2,651 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Overview
- 2. Syntax Reference
- 3. Semantics & Scoping Rules
- 4. Diagnostics & Troubleshooting
- 5. Step-by-Step Refactoring Workflows
Files
SKILL.mdcore11,362 bytes
Read SKILL.md
# Dart Primary Constructors & New Constructor Syntax Skill
Use this skill when helping users write, refactor, or debug code using Dart's **Primary Constructors** feature.
### Dart Version Requirements
* **Dart 3.13 and above**: Primary constructors are enabled by default.
* **Dart 3.12**: The feature is available but experimental. Users must explicitly enable the experiment flag `primary-constructors` via `--enable-experiment=primary-constructors` or in `analysis_options.yaml`:
```yaml
analyzer:
enable-experiment:
- primary-constructors
```
* **Dart 3.11 and earlier**: Primary constructors are not supported.
View the complete source on GitHubdart-write-documentation
When your agent uses it
Rules and formatting guidelines for writing Dart /// API documentation and doc comments. Use when documenting Dart code, writing doc comments for any Dart declaration (libraries, classes, methods, variables, etc.), or when instructed to follow the Effective Dart documentation guidelines.
What it loads into context
Frontmatter
59 tokensAlways available to the agent
SKILL.md
1,585 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- 1. Scope and Structure
- 2. Tone and Openers
- 3. Strict Anti-Patterns (Banned)
- 4. Technical Placement & Resolution
- 5. Linking and Markdown
- 6. Verification
- Examples
Files
SKILL.mdcore6,727 bytes
Read SKILL.md
# Writing Dart API Documentation
## Contents
* [1. Scope and Structure](#1-scope-and-structure)
* [2. Tone and Openers](#2-tone-and-openers)
* [3. Strict Anti-Patterns (Banned)](#3-strict-anti-patterns-banned)
* [4. Technical Placement & Resolution](#4-technical-placement--resolution)
* [5. Linking and Markdown](#5-linking-and-markdown)
* [6. Verification](#6-verification)
* [Examples](#examples)
When asked to write or update documentation for Dart code, you must strictly follow these formatting rules based on the "Effective Dart: Documentation" guidelines.
## 1. Scope and StructureView the complete source on GitHubflutter-add-integration-test
When your agent uses it
Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. Use when adding integration testing to a project, exploring UI components via MCP, or automating user flows with the integration_test package.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
1,671 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Project Setup and Dependencies
- Interactive Exploration via MCP
- Test Authoring Guidelines
- Execution and Profiling
- Workflow: End-to-End Integration Testing
- Examples
Files
SKILL.mdcore7,342 bytesSKILL.mdcore7,342 bytes
Read SKILL.md
# Implementing Flutter Integration Tests
## Contents
- [Project Setup and Dependencies](#project-setup-and-dependencies)
- [Interactive Exploration via MCP](#interactive-exploration-via-mcp)
- [Test Authoring Guidelines](#test-authoring-guidelines)
- [Execution and Profiling](#execution-and-profiling)
- [Workflow: End-to-End Integration Testing](#workflow-end-to-end-integration-testing)
- [Examples](#examples)
## Project Setup and Dependencies
Configure the project to support integration testing and Flutter Driver extensions.
1. Add required development dependencies to `pubspec.yaml`:View the complete source on GitHubflutter-add-widget-preview
When your agent uses it
Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.
What it loads into context
Frontmatter
75 tokensAlways available to the agent
SKILL.md
1,691 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Preview Guidelines
- Preview Parameters
- Handling Limitations
- Workflows
- Examples
Files
SKILL.mdcore7,987 bytes
Read SKILL.md
# Previewing Flutter Widgets
## Contents
- [Preview Guidelines](#preview-guidelines)
- [Preview Parameters](#preview-parameters)
- [Handling Limitations](#handling-limitations)
- [Workflows](#workflows)
- [Examples](#examples)
## Preview Guidelines
Use the Flutter Widget Previewer to render widgets in real-time, isolated from the full application context.
- **Target Elements:** Apply the `@Preview` annotation to top-level functions, static methods within a class, or public widget constructors/factories that have no required arguments and return a `Widget` or `WidgetBuilder`.
- **Imports:** Always import `package:flutter/widget_previews.dart` to access the preview annotations.View the complete source on GitHubflutter-add-widget-test
When your agent uses it
Implement a component-level test using `WidgetTester` to verify UI rendering and user interactions (tapping, scrolling, entering text). Use when validating that a specific widget displays correct data and responds to events as expected.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
1,488 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Setup & Configuration
- Core Components
- Workflow: Implementing a Widget Test
- Interaction & State Management
- Examples
Files
SKILL.mdcore6,381 bytes
Read SKILL.md
# Writing Flutter Widget Tests
## Contents
- [Setup & Configuration](#setup--configuration)
- [Core Components](#core-components)
- [Workflow: Implementing a Widget Test](#workflow-implementing-a-widget-test)
- [Interaction & State Management](#interaction--state-management)
- [Examples](#examples)
## Setup & Configuration
Ensure the testing environment is properly configured before authoring widget tests.
1. Add the `flutter_test` dependency to the `dev_dependencies` section of `pubspec.yaml`.
2. Place all test files in the `test/` directory at the root of the project.View the complete source on GitHubflutter-apply-architecture-best-practices
When your agent uses it
Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
1,427 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Architectural Layers
- Project Structure
- Workflow: Implementing a New Feature
- Examples
Files
SKILL.mdcore6,351 bytesSKILL.mdcore6,351 bytesSKILL.mdcore6,351 bytes
Read SKILL.md
# Architecting Flutter Applications
## Contents
- [Architectural Layers](#architectural-layers)
- [Project Structure](#project-structure)
- [Workflow: Implementing a New Feature](#workflow-implementing-a-new-feature)
- [Examples](#examples)
## Architectural Layers
Enforce strict Separation of Concerns by dividing the application into distinct layers. Never mix UI rendering with business logic or data fetching.
### UI Layer (Presentation)
Implement the MVVM (Model-View-ViewModel) pattern to manage UI state and logic.
* **Views:** Write reusable, lean widgets. Restrict logic in Views to UI-specific operations (e.g., animations, layout constraints, simple routing). Pass all required data from the ViewModel.View the complete source on GitHubflutter-build-responsive-layout
When your agent uses it
Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.
What it loads into context
Frontmatter
90 tokensAlways available to the agent
SKILL.md
1,488 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Space Measurement Guidelines
- Widget Sizing and Constraints
- Device and Orientation Behaviors
- Workflow: Constructing an Adaptive Layout
- Workflow: Optimizing for Large Screens
- Examples
Files
SKILL.mdcore6,805 bytes
Read SKILL.md
# Implementing Adaptive Layouts
## Contents
- [Space Measurement Guidelines](#space-measurement-guidelines)
- [Widget Sizing and Constraints](#widget-sizing-and-constraints)
- [Device and Orientation Behaviors](#device-and-orientation-behaviors)
- [Workflow: Constructing an Adaptive Layout](#workflow-constructing-an-adaptive-layout)
- [Workflow: Optimizing for Large Screens](#workflow-optimizing-for-large-screens)
- [Examples](#examples)
## Space Measurement Guidelines
Determine the available space accurately to ensure layouts adapt to the app window, not just the physical device.
* **Use `MediaQuery.sizeOf(context)`** to get the size of the entire app window.
* **Use `LayoutBuilder`** to make layout decisions based on the parent widget's allocated space. Evaluate `constraints.maxWidth` to determine the appropriate widget tree to return.View the complete source on GitHubflutter-fix-layout-issues
When your agent uses it
Fixes Flutter layout errors (overflows, unbounded constraints) using Dart and Flutter MCP tools. Use when addressing "RenderFlex overflowed", "Vertical viewport was given unbounded height", or similar layout issues.
What it loads into context
Frontmatter
89 tokensAlways available to the agent
SKILL.md
1,234 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Constraint Violation Diagnostics
- Layout Error Resolution Workflow
- Examples
Files
SKILL.mdcore5,326 bytes
Read SKILL.md
# Resolving Flutter Layout Errors
## Contents
- [Constraint Violation Diagnostics](#constraint-violation-diagnostics)
- [Layout Error Resolution Workflow](#layout-error-resolution-workflow)
- [Examples](#examples)
## Constraint Violation Diagnostics
Flutter layout operates on a strict rule: **Constraints go down. Sizes go up. Parent sets position.** Layout errors occur when this negotiation fails, typically due to unbounded constraints or unconstrained children.
Diagnose layout failures using the following error signatures:
* **"Vertical viewport was given unbounded height"**: Triggered when a scrollable widget (`ListView`, `GridView`) is placed inside an unconstrained vertical parent (`Column`). The parent provides infinite height, and the child attempts to expand infinitely.
* **"An InputDecorator...cannot have an unbounded width"**: Triggered when a `TextField` or `TextFormField` is placed inside an unconstrained horizontal parent (`Row`). The text field attempts to determine its width based on infinite available space.View the complete source on GitHubflutter-implement-json-serialization
When your agent uses it
Create model classes with `fromJson` and `toJson` methods using `dart:convert`. Use when manually mapping JSON keys to class properties for simple data structures.
What it loads into context
Frontmatter
80 tokensAlways available to the agent
SKILL.md
1,314 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Core Guidelines
- Workflow: Implementing a Serializable Model
- Workflow: Fetching and Parsing JSON
- Examples
Files
SKILL.mdcore5,650 bytes
Read SKILL.md
# Serializing JSON Manually in Flutter
## Contents
- [Core Guidelines](#core-guidelines)
- [Workflow: Implementing a Serializable Model](#workflow-implementing-a-serializable-model)
- [Workflow: Fetching and Parsing JSON](#workflow-fetching-and-parsing-json)
- [Examples](#examples)
## Core Guidelines
- **Import `dart:convert`**: Utilize Flutter's built-in `dart:convert` library for manual JSON encoding (`jsonEncode`) and decoding (`jsonDecode`).
- **Enforce Type Safety**: Always cast the `dynamic` result of `jsonDecode()` to the expected type, typically `Map<String, dynamic>` for objects or `List<dynamic>` for arrays.
- **Encapsulate Serialization Logic**: Define plain model classes containing properties corresponding to the JSON structure. Implement a `fromJson` factory constructor and a `toJson` method within the model.
- **Handle Background Parsing**: If parsing large JSON documents (execution time > 16ms), offload the parsing logic to a separate isolate using Flutter's `compute()` function to prevent UI jank.
- **Throw Exceptions on Failure**: When handling HTTP responses, throw an exception if the status code is not successful (e.g., not 200 OK or 201 Created). Do not return `null`.View the complete source on GitHubflutter-setup-declarative-routing
When your agent uses it
Configure `MaterialApp.router` using a package like `go_router` for advanced URL-based navigation. Use when developing web applications or mobile apps that require specific deep linking and browser history support.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
1,900 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Core Concepts
- Workflow: Initializing the Application and Router
- Workflow: Configuring Platform Deep Linking
- Workflow: Implementing Nested Navigation
- Examples
Files
SKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytesSKILL.mdcore8,204 bytes
Read SKILL.md
# Implementing Routing and Deep Linking
## Contents
- [Core Concepts](#core-concepts)
- [Workflow: Initializing the Application and Router](#workflow-initializing-the-application-and-router)
- [Workflow: Configuring Platform Deep Linking](#workflow-configuring-platform-deep-linking)
- [Workflow: Implementing Nested Navigation](#workflow-implementing-nested-navigation)
- [Examples](#examples)
## Core Concepts
Use the `go_router` package for declarative routing in Flutter. It provides a robust API for complex routing scenarios, deep linking, and nested navigation.
- **GoRouter**: The central configuration object defining the application's route tree.
- **GoRoute**: A standard route mapping a URL path to a Flutter screen.View the complete source on GitHubflutter-setup-localization
When your agent uses it
Add `flutter_localizations` and `intl` dependencies, enable "generate true" in `pubspec.yaml`, and create an `l10n.yaml` configuration file. Use when initializing localization support for a new Flutter project.
What it loads into context
Frontmatter
91 tokensAlways available to the agent
SKILL.md
1,439 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Core Concepts
- Setup Workflow
- Implementation Workflow
- Advanced Formatting
- Examples
Files
SKILL.mdcore5,920 bytesSKILL.mdcore5,920 bytesSKILL.mdcore5,920 bytes
Read SKILL.md
# Internationalizing Flutter Applications
## Contents
- [Core Concepts](#core-concepts)
- [Setup Workflow](#setup-workflow)
- [Implementation Workflow](#implementation-workflow)
- [Advanced Formatting](#advanced-formatting)
- [Examples](#examples)
## Core Concepts
Flutter handles internationalization (i18n) and localization (l10n) via the `flutter_localizations` and `intl` packages. The standard approach uses App Resource Bundle (`.arb`) files to define localized strings, which are then compiled into a generated `AppLocalizations` class for type-safe access within the widget tree.
## Setup Workflow
Copy and track this checklist when initializing internationalization in a Flutter project:View the complete source on GitHubflutter-use-http-package
When your agent uses it
Use the `http` package to execute GET, POST, PUT, or DELETE requests. Use when you need to fetch from or send data to a REST API.
What it loads into context
Frontmatter
77 tokensAlways available to the agent
SKILL.md
1,480 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- Configuration & Permissions
- Request Execution & Response Handling
- Background Parsing
- Workflow: Executing Network Operations
- Examples
Files
SKILL.mdcore6,456 bytesSKILL.mdcore6,456 bytes
Read SKILL.md
# Implementing Flutter Networking
## Contents
- [Configuration & Permissions](#configuration--permissions)
- [Request Execution & Response Handling](#request-execution--response-handling)
- [Background Parsing](#background-parsing)
- [Workflow: Executing Network Operations](#workflow-executing-network-operations)
- [Examples](#examples)
## Configuration & Permissions
Configure the environment and platform-specific permissions required for network access.
1. Add the `http` package dependency via the terminal:
```bashView the complete source on GitHubSkills included
- dart-add-unit-test
- dart-build-cli-app
- dart-collect-coverage
- dart-fix-runtime-errors
- dart-generate-test-mocks
- dart-migrate-to-checks-package
- dart-resolve-package-conflicts
- dart-run-static-analysis
- dart-setup-ffi-assets
- dart-use-doc-examples
- dart-use-ffigen
- dart-use-path-package
- dart-use-pattern-matching
- dart-use-primary-constructors
- dart-write-documentation
- flutter-add-integration-test
- flutter-add-widget-preview
- flutter-add-widget-test
- flutter-apply-architecture-best-practices
- flutter-build-responsive-layout
- flutter-fix-layout-issues
- flutter-implement-json-serialization
- flutter-setup-declarative-routing
- flutter-setup-localization
- flutter-use-http-package
Repository facts
- License
- BSD-3-Clause
- Created
- Feb 25, 2026
- Last pushed
- Nov 5, 2026
- Forks
- 189
- Open issues
- 21
- Project activity
- Active
Rank over the last 12 weeks
Now #392 · best #298 · down 52 in 30 days
- #383 from Oct 30 to Nov 1
- #385 on Nov 2
- #387 on Nov 3
- #389 on Nov 4
- #390 on Nov 5
- #392 since Nov 6
78 earlier periods
- #286 on Aug 2
- #292 on Aug 7
- #295 on Aug 8
- #292 on Aug 9
- #300 on Aug 10
- #295 on Aug 11
- #296 on Aug 12
- #302 on Aug 13
- #300 on Aug 14
- #298 on Aug 15
- #304 on Aug 16
- #302 on Aug 17
- #311 on Aug 18
- #309 on Aug 19
- #306 on Aug 20
- #308 on Aug 21
- #301 on Aug 22
- #306 on Aug 23
- #308 on Aug 24
- #309 on Aug 25
- #308 on Aug 26
- #306 on Aug 27
- #308 on Aug 28
- #307 on Aug 29
- #302 on Aug 30
- #310 on Aug 31
- #314 on Sep 1
- #311 on Sep 2
- #319 on Sep 3
- #315 on Sep 4
- #314 on Sep 5
- #315 on Sep 6
- #323 from Sep 7 to Sep 8
- #324 on Sep 9
- #323 on Sep 10
- #319 on Sep 11
- #322 on Sep 12
- #319 on Sep 13
- #324 on Sep 14
- #323 from Sep 15 to Sep 17
- #324 on Sep 18
- #320 on Sep 19
- #328 on Sep 20
- #329 on Sep 21
- #331 on Sep 22
- #327 on Sep 23
- #326 on Sep 24
- #323 on Sep 25
- #321 on Sep 26
- #328 on Sep 27
- #330 on Sep 28
- #337 on Sep 29
- #332 on Sep 30
- #333 on Oct 1
- #337 on Oct 2
- #332 on Oct 3
- #327 on Oct 4
- #334 on Oct 5
- #336 on Oct 6
- #340 on Oct 7
- #344 on Oct 8
- #348 on Oct 9
- #339 on Oct 10
- #342 on Oct 11
- #349 on Oct 12
- #350 on Oct 13
- #352 on Oct 14
- #348 on Oct 15
- #354 on Oct 16
- #348 on Oct 17
- #355 on Oct 18
- #358 on Oct 19
- #359 from Oct 20 to Oct 21
- #360 from Oct 22 to Oct 23
- #357 on Oct 24
- #370 on Oct 25
- #379 on Oct 28
- #382 on Oct 29
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 63 notes
.agents/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzed.agents/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzed.agents/hooks.json:1Plugin-wide analysis incomplete; see repository notesskills/dart-collect-coverage/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-collect-coverage/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-collect-coverage/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-collect-coverage/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-collect-coverage/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-collect-coverage/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-fix-runtime-errors/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-fix-runtime-errors/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-fix-runtime-errors/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed.agents/hooks.json:1Plugin-wide analysis incomplete; see repository notesskills/dart-migrate-to-checks-package/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-migrate-to-checks-package/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-migrate-to-checks-package/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-migrate-to-checks-package/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-resolve-package-conflicts/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-run-static-analysis/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/dart-run-static-analysis/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: dart-setup-ffi-assets/SKILL.md:136
- 57 network referencesin 12 files: dart-generate-test-mocks/SKILL.md:21 .claude-plugin/plugin.json:6 dart-use-doc-examples/SKILL.md:71 and 9 more
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- No access to secrets
- No requests to vote in Hot
Show all 58 signals by file
.claude-plugin/plugin.json
- Network accessline 6
"author": { "name": "Dart and Flutter", "url": "https://flutter.dev" - Network accessline 7
"name": "Dart and Flutter", "url": "https://flutter.dev" }, - Network accessline 8
"url": "https://flutter.dev" - Network accessline 9
}, "homepage": "https://github.com/flutter/agent-plugins", "repository": "https://github.com/flutter/agent-plugins", - Network accessline 10
"homepage": "https://github.com/flutter/agent-plugins", - Network accessline 11
"repository": "https://github.com/flutter/agent-plugins",
skills/dart-build-cli-app/SKILL.md
- Network accessline 91
ONLY receive usage help when the user explicitly requests it via `--help` or `-h`. * **No `print()` in Error Handlers**: `print()` routes to `stdout`. Use `stderr.writeln()` for all failure notifications. For standard output, prefer `stdo - Network accessline 92
`-h`. * **No `print()` in Error Handlers**: `print()` routes to `stdout`. Use `stderr.writeln()` for all failure notifications. For standard output, prefer `stdout.writeln()` over `print()` to comply with the [`avoid_print`](https://dart.de - Network accessline 93
* **No `print()` in Error Handlers**: `print()` routes to `stdout`. Use `stderr.writeln()` for all failure notifications. For standard output, prefer `stdout.writeln()` over `print()` to comply with the [`avoid_print`](https://dart.dev/tool
skills/dart-collect-coverage/SKILL.md
- Network accessline 89
dart run coverage:collect_coverage --wait-paused --uri=http://127.0.0.1:8181/ -o coverage/coverage.json --resume-isolates
skills/dart-generate-test-mocks/SKILL.md
- Network accessline 21
- Inject external services (e.g., `http.Client`) through class constructors. - Network accessline 54
### Task Progress - [ ] 1. Identify the external dependency to mock (e.g., `http.Client`). - Network accessline 55
- [ ] 1. Identify the external dependency to mock (e.g., `http.Client`). - Network accessline 85
class ApiService { final http.Client client; - Network accessline 86
final http.Client client; - Network accessline 111
// Generate the mock class for http.Client - Network accessline 112
@GenerateNiceMocks([MockSpec<http.Client>()]) - Network accessline 131
// Act final result = await apiService.fetchData('https://api.example.com/data'); - Network accessline 132
final result = await apiService.fetchData('https://api.example.com/data'); - Network accessline 137
// Verify the mock was called with the correct Uri verify(mockHttpClient.get(Uri.parse('https://api.example.com/data'))).called(1); - Network accessline 138
verify(mockHttpClient.get(Uri.parse('https://api.example.com/data'))).called(1); - Network accessline 147
// Act & Assert expect( apiService.fetchData('https://api.example.com/data'), - Network accessline 148
expect( apiService.fetchData('https://api.example.com/data'), throwsException, - Network accessline 149
apiService.fetchData('https://api.example.com/data'),
skills/dart-resolve-package-conflicts/SKILL.md
skills/dart-setup-ffi-assets/SKILL.md
- Dangerous shell operationline 136
sudo apt install build-essential - Network accessline 273
Uri downloadUri(String target) => Uri.parse( 'https://github.com/my-org/my-native-repo/releases/download/$version/$target', - Network accessline 274
'https://github.com/my-org/my-native-repo/releases/download/$version/$target',
skills/dart-use-doc-examples/SKILL.md
- Network accessline 71
final mockServer = startServer(); // #hide final data = await fetch(mockServer.url); - Network accessline 72
final data = await fetch(mockServer.url); - Network accessline 74
In the generated documentation, only `final data = await fetch(mockServer.url);` will be visible. The line with `#hide` is completely dropped. - Network accessline 88
* *Example:* `{@example ../utils/demo.dart}` * **Boundary Enforcement:** Using `..` segments to traverse upward is perfectly acceptable, but dartdoc natively stops directory traversal at the package root (it will never escape the packag - Network accessline 89
* **Boundary Enforcement:** Using `..` segments to traverse upward is perfectly acceptable, but dartdoc natively stops directory traversal at the package root (it will never escape the package). * **No Network URLs:** Absolute URIs (e.g - Network accessline 90
* **No Network URLs:** Absolute URIs (e.g., starting with `https://`) are strictly not supported. The example file *must* sit natively somewhere in the local filesystem.
skills/dart-use-ffigen/SKILL.md
- Network accessline 80
### Step 1: Check/Add Dependencies Open the package's `pubspec.yaml` and verify the `dev_dependencies` contains `ffigen`. Use the Dart MCP server or look up the latest version on [pub.dev](https://pub.dev/packages/ffigen) (e.g., `^20.1.1`). - Network accessline 81
Open the package's `pubspec.yaml` and verify the `dev_dependencies` contains `ffigen`. Use the Dart MCP server or look up the latest version on [pub.dev](https://pub.dev/packages/ffigen) (e.g., `^20.1.1`). - Network accessline 113
``` 2. **Addressing Warnings/Lints**: If `dart analyze` reports style or lint warnings inside the generated file, append the corresponding warning codes to the `ignore_for_file:` list in your generator script's `preamble` configuration (e. - Network accessline 115
3. **Addressing Compilation Errors**: If `dart analyze` reports actual compiler or analysis errors (not warnings) inside the generated file, do not attempt to edit the generated file manually. Report these error details directly to the use - Network accessline 216
2. **Static Analysis**: Run `dart analyze` and ensure there are zero compiler/analyzer errors or warnings in the package. * If static warnings are reported in the generated bindings, suppress them by adding `ignore_for_file` rules to - Network accessline 218
* If actual compiler or analyzer errors are reported in the generated bindings, do not edit the generated file manually. Report the details to the user and direct them to file an issue at [github.com/dart-lang/native](https://github.com/d
skills/dart-use-pattern-matching/examples/json_patterns.dart
skills/flutter-implement-json-serialization/SKILL.md
- Network accessline 111
Future<User> fetchUser(http.Client client, int userId) async { - Network accessline 112
final response = await client.get( Uri.parse('https://api.example.com/users/$userId'), headers: {'Accept': 'application/json'}, - Network accessline 113
Uri.parse('https://api.example.com/users/$userId'), - Network accessline 140
Future<List<User>> fetchUsers(http.Client client) async { - Network accessline 141
final response = await client.get( Uri.parse('https://api.example.com/users'), headers: {'Accept': 'application/json'}, - Network accessline 142
Uri.parse('https://api.example.com/users'),
skills/flutter-setup-declarative-routing/SKILL.md
- Network accessline 110
2. **Host `assetlinks.json`**: Serve the following JSON at `https://yourdomain.com/.well-known/assetlinks.json`. - Network accessline 136
3. **Host `apple-app-site-association`**: Serve the following JSON (without a `.json` extension) at `https://yourdomain.com/.well-known/apple-app-site-association`. - Network accessline 154
adb shell 'am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://yourdomain.com/details/123"' com.yourcompany.yourapp - Network accessline 158
xcrun simctl openurl booted https://yourdomain.com/details/123
skills/flutter-use-http-package/SKILL.md
- Network accessline 94
Future<List<Photo>> fetchPhotos() async { final response = await http.get( Uri.parse('https://jsonplaceholder.typicode.com/photos'), - Network accessline 95
final response = await http.get( Uri.parse('https://jsonplaceholder.typicode.com/photos'), headers: { - Network accessline 96
Uri.parse('https://jsonplaceholder.typicode.com/photos'),
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 49 facts
- Network access in prose of the SKILL.mddart-build-cli-app/SKILL.md:91Low confidence
- Network access in prose of the SKILL.mddart-build-cli-app/SKILL.md:92Low confidence
- Network access in prose of the SKILL.mddart-build-cli-app/SKILL.md:93Low confidence
- Network access in code of the SKILL.mddart-collect-coverage/SKILL.md:89High confidence
- Network access in prose of the SKILL.mddart-generate-test-mocks/SKILL.md:21Low confidence
- Network access in prose of the SKILL.mddart-generate-test-mocks/SKILL.md:54Low confidence
- Network access in prose of the SKILL.mddart-generate-test-mocks/SKILL.md:55Low confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:85High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:86High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:111High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:112High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:131High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:132High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:137High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:138High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:147High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:148High confidence
- Network access in code of the SKILL.mddart-generate-test-mocks/SKILL.md:149High confidence
- Network access in code of the SKILL.mddart-resolve-package-conflicts/SKILL.md:106High confidence
- Network access in code of the SKILL.mddart-resolve-package-conflicts/SKILL.md:107High confidence
- Network access in code of the SKILL.mddart-resolve-package-conflicts/SKILL.md:108High confidence
- Dangerous shell operation in prose of the SKILL.mddart-setup-ffi-assets/SKILL.md:136Low confidence
- Network access in code of the SKILL.mddart-setup-ffi-assets/SKILL.md:273High confidence
- Network access in code of the SKILL.mddart-setup-ffi-assets/SKILL.md:274High confidence
- Network access in code of the SKILL.mddart-use-doc-examples/SKILL.md:71High confidence
- Network access in code of the SKILL.mddart-use-doc-examples/SKILL.md:72High confidence
- Network access in prose of the SKILL.mddart-use-doc-examples/SKILL.md:74Low confidence
- Network access in prose of the SKILL.mddart-use-doc-examples/SKILL.md:88Low confidence
- Network access in prose of the SKILL.mddart-use-doc-examples/SKILL.md:89Low confidence
- Network access in prose of the SKILL.mddart-use-doc-examples/SKILL.md:90Low confidence
- Network access in prose of the SKILL.mddart-use-ffigen/SKILL.md:80Low confidence
- Network access in prose of the SKILL.mddart-use-ffigen/SKILL.md:81Low confidence
- Network access in prose of the SKILL.mddart-use-ffigen/SKILL.md:113Low confidence
- Network access in prose of the SKILL.mddart-use-ffigen/SKILL.md:115Low confidence
- Network access in prose of the SKILL.mddart-use-ffigen/SKILL.md:216Low confidence
- Network access in prose of the SKILL.mddart-use-ffigen/SKILL.md:218Low confidence
- Network access in code of the SKILL.mdflutter-implement-json-serialization/SKILL.md:111High confidence
- Network access in code of the SKILL.mdflutter-implement-json-serialization/SKILL.md:112High confidence
- Network access in code of the SKILL.mdflutter-implement-json-serialization/SKILL.md:113High confidence
- Network access in code of the SKILL.mdflutter-implement-json-serialization/SKILL.md:140High confidence
- Network access in code of the SKILL.mdflutter-implement-json-serialization/SKILL.md:141High confidence
- Network access in code of the SKILL.mdflutter-implement-json-serialization/SKILL.md:142High confidence
- Network access in prose of the SKILL.mdflutter-setup-declarative-routing/SKILL.md:110Low confidence
- Network access in prose of the SKILL.mdflutter-setup-declarative-routing/SKILL.md:136Low confidence
- Network access in code of the SKILL.mdflutter-setup-declarative-routing/SKILL.md:154High confidence
- Network access in code of the SKILL.mdflutter-setup-declarative-routing/SKILL.md:158High confidence
- Network access in code of the SKILL.mdflutter-use-http-package/SKILL.md:94High confidence
- Network access in code of the SKILL.mdflutter-use-http-package/SKILL.md:95High confidence
- Network access in code of the SKILL.mdflutter-use-http-package/SKILL.md:96High confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/dart-add-unit-test/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/dart-add-unit-test/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/dart-add-unit-test/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/dart-add-unit-test/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/dart-add-unit-test/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/flutter-agent-plugins/)