Agent Skills for Dart
Скиллы команды Dart: тесты и моки, анализ и dart fix, CLI-приложения, FFI, документация и разбор конфликтов пакетов для ИИ-агента
- 529 ★ репозитория
- Последний коммит
- BSD-3-Clause
Минимальный доступ
Почему такой уровень
- Скиллы состоят из текстовых инструкций, но по ним агент запускает команды `dart test`, `dart analyze` и `dart fix --apply`, которые меняют файлы проекта
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/agent-skills-for-dartОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- Скиллы состоят из текстовых инструкций, но по ним агент запускает команды `dart test`, `dart analyze` и `dart fix --apply`, которые меняют файлы проекта
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Agent Skills for Dart — набор скиллов, который ведет команда Dart. Каждый скилл описывает повторяемый рабочий процесс для типичной задачи на Dart, и агент ошибается реже. Авторы пишут, что скиллы дополняют MCP: MCP открывает агенту инструменты, а скилл показывает, как ими пользоваться. В таблице репозитория 14 скиллов. Для тестов: `dart-add-unit-test` (`package:test`), `dart-generate-test-mocks` (`package:mockito` и `build_runner`), `dart-collect-coverage` (LCOV-отчет), `dart-migrate-to-checks-package` (замена `expect` из `matcher` на `package:checks`). Для качества кода: `dart-run-static-analysis` запускает `dart analyze` и `dart fix --apply`, `dart-write-documentation` и `dart-use-doc-examples` задают правила для /// документации и вставки примеров через {@example}, `dart-use-pattern-matching` предлагает `switch`-выражения и паттерны. Для сборки: `dart-build-cli-app` про структуру CLI-приложения, коды выхода и подпроцессы, `dart-use-path-package` про пути, `dart-resolve-package-conflicts` про сбой `pub get`. Для нативного кода: `dart-use-ffigen` и `dart-setup-ffi-assets`. Скилл `dart-fix-runtime-errors` берет стек ошибки через get_runtime_errors, находит строку, правит и проверяет hot_reload. У каждого скилла в таблице есть пример запроса, например «Add a unit test for the Point class».
Для кого. Для разработчиков на Dart и Flutter, которые поручают агенту тесты, анализ, документацию и сборку CLI-приложений.
Подходит, если
- К новому классу нужны юнит-тесты, организованные по правилам: файлы в test/ с суффиксом _test.dart, группы через `group`()
- Класс зависит от внешнего API или базы, и нужны моки через `package:mockito` и `build_runner`
- `pub get` падает из-за несовместимых версий, и агенту нужен порядок разбора конфликта в `pubspec`
- Пишете CLI на Dart: нужны CommandRunner, понятные коды выхода и разделение потоков вывода
- Надо описать публичный API по правилам Effective Dart: `doc`-комментарии и примеры через {@example}
Не подходит, если
- Нужны скиллы для интерфейсов Flutter: авторы отсылают к отдельному набору Agent Skills for Flutter
- Проект написан не на Dart: набор целиком про инструменты и пакеты Dart
- Нужно, чтобы агент сам выполнял команды без вашего контроля: скиллы запускают `dart test`, `dart fix` и подобные команды, а результат стоит проверять
- Вам нужен MCP-сервер с инструментами Dart: скиллы учат пользоваться инструментами и сами их не дают
Пример запроса к агенту
Добавь юнит-тесты для класса Point и сгенерируй мок для ApiClient, а потом запусти `dart test`. Используй скиллы DartОграничения
Нужен установленный Dart SDK, а для части скиллов Flutter и пакеты вроде `mockito`, `build_runner`, `ffigen` и `coverage`. Скилл `dart-fix-runtime-errors` опирается на инструменты get_runtime_errors, hot_reload и LSP, их должен дать подключенный MCP-сервер. Набор содержит инструкции без собственных инструментов, поэтому без нужных пакетов в `pubspec` часть сценариев не запустится.
Установка по умолчанию кладет все скиллы в общую папку .agents/skills проекта.
Как отключить. Удалите нужные папки `dart-`* из .agents/skills проекта или удалите всю папку скиллов. Обновления подтягивает npx skills update, без его запуска набор остается прежним.
Частые вопросы
Как поставить скиллы Dart в проект?
В корне проекта выполните npx skills add dart-lang/skills --skill '*' --agent universal --yes. Флаг --agent universal кладет скиллы в стандартную папку .agents/skills, которую читает большинство агентов. Обновление: npx skills update.
Какие скиллы входят в набор Dart?
Четырнадцать: тесты (`add-unit-test`, `generate-test-mocks`, `collect-coverage`, `migrate-to-checks-package`), анализ и документация (`run-static-analysis`, `write-documentation`, `use-doc-examples`, `use-pattern-matching`), сборка (`build-cli-app`, `use-path-package`, `resolve-package-conflicts`), нативный код (`use-ffigen`, `setup-ffi-assets`) и `fix-runtime-errors`.
Чем скиллы Dart отличаются от скиллов Flutter?
Этот репозиторий про Dart: тесты, пакеты, CLI, FFI, документация. Для Flutter-приложений авторы отсылают к отдельному набору Agent Skills for Flutter в репозитории flutter/skills.
Как скилл `dart-fix-runtime-errors` находит ошибку?
Он берет активный стек вызовов через get_runtime_errors и LSP, находит проблемную строку, вносит правку и проверяет результат через hot_reload. Для этого агенту нужны эти инструменты от подключенного MCP-сервера.
Как заменить `expect` на `package:checks`?
Это делает скилл `dart-migrate-to-checks-package`: он переписывает `expect` и похожие функции из `package:matcher` на эквиваленты `package:checks`. Пример запроса из таблицы: «Migrate the tests in test/user_test.dart to use package:checks».
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыBuilder Skills
Skills for agents
Набор небольших скиллов от Builder.io для рабочих привычек агента: визуальные планы и разборы диффов, сверка с документацией, кросс-агентное ревью и аккуратные
Agent Skills от Tech Leads Club
Agent Skills
Проверяемый реестр скиллов с CLI для установки в два десятка агентов и MCP-сервером для поиска скиллов на лету
Набор скиллов от команды Kotlin для агентов: перевод Java в Kotlin, миграции сборки и правильная работа с бэкенд-фреймворками
Dimillian Skills
Skills
Набор из 16 инженерных скиллов для агентов: разработка под Apple, упаковка macOS, производительность React, ревью и рефакторинг кода
Личный набор автора: общие правила для агентов и десятки скиллов для GitHub, браузера, macOS, сообщений и релизов, плюс скрипт синхронизации
Softaworks Agent Toolkit
Softaworks Agent Skills
Маркетплейс скиллов, субагентов и команд для кодовых агентов: разработка, документация, планирование и рабочая коммуникация
Коротко о README
Короткий README: набор ведет команда Dart, скиллы описывают повторяемые процессы и дополняют MCP. Далее одна команда установки в папку .agents/skills, команда обновления и таблица из 14 скиллов с описаниями и примерами запросов. Есть ссылка на отдельный набор для Flutter.
Бейдж для README
Исходный SKILL.md
--- name: dart-add-unit-test description: 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. metadata: model: models/gemini-3.1-pro-preview last_modified: Mon, 03 Aug 2026 21:51:24 GMT --- # 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. ## Writing Tests Utilize `package:test` as the standard testing library for Dart applications. * Import `package:test/test.dart` (or `package:flutter_test/flutter_test.dart` for Flutter). * Group related tests using the `group()` function to provide shared context. * Define individual test cases using the `test()` function. * Validate outcomes using the `expect()` function alongside matchers (e.g., `equals()`, `isTrue`, `throwsA()`). * Write asynchronous tests using standard `async`/`await` syntax. The test runner automatically waits for the `Future` to complete. * Manage test setup and teardown using `setUp()` and `tearDown()` callbacks. * If testing code that relies on dependency injection, use `package:mockito` alongside `package:test` to generate mock objects, configure fixed scenarios, and verify interactions. ## Executing Tests Select the appropriate test runner based on the project type and test location. * If working on a pure Dart project, execute tests using the `dart test` command. * If working on a Flutter project, execute tests using the `flutter test` command. * If running integration tests, explicitly specify the directory path, as the default runner ignores it: `dart test integration_test` or `flutter test integration_test`.