К основному содержанию
скилл CX Codex

dart-best-practices — скилл для Claude Code: как установить

Скилл задаёт правила оформления кода на Dart при генерации и ревью. Помогает форматировать многострочные блоки и соблюдать лимит длины строки в 80 знаков.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add kevmoo/dash_skills --skill dart-best-practices -a claude-code
Открыть на GitHub

Что делает dart-best-practices

Скилл инструктирует агента по стилю и оформлению кода на Dart. Он требует заменять конкатенацию строк через + и \n на многострочные литералы ''' в крупных фрагментах вроде SQL-запросов или PEM-ключей. Длина строк не должна превышать 80 знаков. Это требование согласуется с правилом линтера lines_longer_than_80_chars.

В инструкциях прописаны чёткие границы применения. Агент не трогает сгенерированные файлы *.g.dart или *.freezed.dart. Ему также запрещено ломать публичные сигнатуры API без обновления мажорной версии SemVer и убирать явные типы в интерфейсах. Такие ограничения страхуют библиотеки от поломок при автоматическом рефакторинге.

Какие задачи решает

  • заменять конкатенацию через + и \n на многострочные литералы '''
  • укладывать код и комментарии в ограничение 80 символов
  • защищать сгенерированные файлы *.g.dart и *.freezed.dart от правок
  • сохранять явные типы в публичных интерфейсах при рефакторинге

Примеры запросов агенту

  • Проверь этот файл Dart на соответствие стилю и длине строк до 80 символов
  • Перепиши блок формирования SQL-запроса через многострочные литералы Dart
  • Сделай ревью модуля Dart без изменения публичных сигнатур API

Как установить dart-best-practices

1Через Skills CLI (Vercel)

npx skills add kevmoo/dash_skills --skill dart-best-practices -a claude-code

2Вручную: положить файлы

~/.claude/skills/dart-best-practices/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/dart-best-practices/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора3

Похожие

dart-use-primary-constructors flutter Скилл учит агента переводить классы Dart на первичные конструкторы и синтаксис Dart 3.13+. Он пригодится при рефакторинге моделей данных и сокращении шаблонного кода. CX Codex +1 14 200установок go-naming cxuu Скилл следит за именами в Go: пакеты, типы, функции, константы, получатели. Пригодится, когда агент создаёт новые типы или экспортируемое API. CX Codex +1 1 200установок go-style-core cxuu Скилл задаёт базовые правила оформления Go-кода: отступы, вложенность, naked returns, точки с запятой. Пригодится, когда агент пишет или правит код на Go. CX Codex +1 1 200установок dart-run-static-analysis dart-lang Запускает dart analyze для поиска ошибок и dart fix --apply для автоисправления предупреждений линтера. Помогает проверять качество кода на Dart перед коммитами. CX Codex +1 19 000установок dart-fix-runtime-errors dart-lang Скилл автоматически ловит ошибки времени выполнения в Dart-коде, находит проблемную строку через LSP и стек-трейс, применяет исправление и проверяет результат через hot reload. CX Codex +1 18 700установок dart-use-path-package flutter Учит агента работать с путями файлов в Dart через package:path, избегая строковых операций, которые ломаются на Windows. CX Codex +1 6 000установок

Рядом в теме «Языки программирования»

Все скиллы по теме «Языки программирования» →

Вопросы о dart-best-practices

Как установить dart-best-practices в Claude Code?

Выполните команду npx skills add kevmoo/dash_skills --skill dart-best-practices -a claude-code в терминале.

Что делает скилл dart-best-practices?

Он инструктирует модель использовать многострочные литералы и выдерживать лимит в 80 знаков на строку. Также скилл запрещает ломать публичные контракты библиотек.

Трогает ли скилл сгенерированные файлы?

Нет, в правилах заложен прямой запрет на модификацию файлов вроде *.g.dart и *.freezed.dart.

Исходный текст

SKILL.md · Apache-2.0
---
name: dart-best-practices
description: |-
  General best practices for Dart development.
  Covers code style, effective Dart, and language features.
license: Apache-2.0
key_features:
  - Code style guidelines
  - Effective Dart idioms
  - Language feature recommendations
---

# Dart Best Practices

## 1. When to use this skill

Use this skill when:

- Writing or reviewing Dart code.
- Looking for guidance on idiomatic Dart usage.

### When NOT to use (Abstention Guardrails)

Do NOT apply this skill or refactor code when:

- **Public API Breaking Changes**: Refactoring would alter public API contracts,
  return types, or parameter signatures in published packages without a
  coordinated major SemVer bump.
- **Dogmatic Micro-Optimizations**: Rewriting clear, readable code for
  negligible theoretical gains (e.g. replacing clear string concatenation in a
  simple one-line log message with multiline quotes).
- **Domain-Specific or Code-Generated Files**: Generated files (`*.g.dart`,
  `*.freezed.dart`, protobufs) or files where line lengths and string layouts
  are managed by code generators.
- **Explicit Type Annotations in Public Interfaces**: Replacing explicit type
  annotations with `var` or `final` where explicit types document the public API
  surface or disambiguate complex generics.

## 2. Best Practices

### Multi-line Strings

Prefer using multi-line strings (`'''`) over concatenating strings with `+` and
`\n`, especially for large blocks of text like SQL queries, HTML, or PEM-encoded
keys. This improves readability and avoids `lines_longer_than_80_chars` lint
errors by allowing natural line breaks.

**Avoid:**

```dart
final pem = '-----BEGIN RSA PRIVATE KEY-----\n' +
    base64Encode(fullBytes) +
    '\n-----END RSA PRIVATE KEY-----';
```

**Prefer:**

```dart
final pem = '''
-----BEGIN RSA PRIVATE KEY-----
${base64Encode(fullBytes)}
-----END RSA PRIVATE KEY-----''';
```

### Line Length

Avoid lines longer than 80 characters, even in Markdown files and comments. This
ensures code is readable in split-screen views and on smaller screens without
horizontal scrolling.

**Prefer:** Target 80 characters for wrapping text. Exceptions are allowed for
long URLs or identifiers that cannot be broken.

## Discovery

### Multi-line Strings

To find candidates for multi-line strings, search for string concatenation with
`+` involving newlines:

- **Regex**: `['"]\s*\+\s*['"]`
- **Regex**: `\+\s*['"].*\\n`

### Line Length

- Rely on the `lines_longer_than_80_chars` lint from the analyzer.

## Related Skills

- **[dart-modern-features]**: For idiomatic usage of modern Dart features like
  Pattern Matching (useful for deep JSON extraction), Records, and Switch
  Expressions.

[dart-modern-features]:
  https://github.com/kevmoo/dash_skills/blob/main/skills/dart-modern-features/SKILL.md

© kevmoo · Apache-2.0 · kevmoo/dash_skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой