dart-best-practices — Claude Code skill: what it does, how to install
Enforces idiomatic Dart code style and formatting during generation and review. Focuses on clean multi-line string literals and strict 80-character line wrapping.
npx skills add kevmoo/dash_skills --skill dart-best-practices -a claude-codeWhat dart-best-practices does
The skill guides AI assistants through writing and reviewing Dart code. It directs the agent to replace string concatenation (+ with \n) with triple-quoted strings (''') for large blocks like SQL queries or PEM keys. Line lengths must stay under 80 characters. This rule aligns directly with the lines_longer_than_80_chars analyzer lint.
Strict guardrails prevent unwanted edits. The assistant avoids touching generated files such as *.g.dart or *.freezed.dart. It also refuses to break public API contracts without a coordinated SemVer bump, or strip explicit types from public signatures. This boundary keeps library interfaces stable during refactoring.
What it helps with
- replace manual string concatenation with triple-quoted multi-line strings
- keep code and comments within the 80-character limit
- prevent accidental edits to generated files like
*.g.dartor*.freezed.dart - preserve explicit type annotations in public interfaces
Example prompts for the agent
- Review this Dart file and fix lines exceeding 80 characters
- Convert this concatenated SQL query into a Dart multi-line string
- Refactor this Dart module for style without changing public API types
How to install dart-best-practices
1Skills CLI (Vercel)
npx skills add kevmoo/dash_skills --skill dart-best-practices -a claude-code2Manually: put the files in place
~/.claude/skills/dart-best-practices/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/dart-best-practices/
1Skills CLI (Vercel)
npx skills add kevmoo/dash_skills --skill dart-best-practices -a codex2Manually: put the files in place
.agents/skills/dart-best-practices/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add kevmoo/dash_skills --skill dart-best-practices -a cursor2Manually: put the files in place
.cursor/skills/dart-best-practices/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install kevmoo/dash_skills dart-best-practices2Manually: put the files in place
.github/skills/dart-best-practices/SKILL.md1Skills CLI (Vercel)
npx skills add kevmoo/dash_skills --skill dart-best-practices -a gemini-cli2Platform CLI
gemini skills install https://github.com/kevmoo/dash_skills --path skills/dart-best-practicesManually: put the files in place
.devin/skills/dart-best-practices/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add kevmoo/dash_skills --skill dart-best-practices -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about dart-best-practices
How do I install dart-best-practices in Claude Code?
Run npx skills add kevmoo/dash_skills --skill dart-best-practices -a claude-code in your terminal.
What does dart-best-practices do?
It instructs the agent to format multi-line strings using triple quotes and maintain an 80-character line limit. It also sets guardrails against breaking public APIs.
Does this skill modify generated Dart files?
No, guardrails explicitly prevent refactoring in generated files like *.g.dart or *.freezed.dart.
Source text
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