About dart-best-practices
dart-best-practices is a skill for developers writing or reviewing Dart code. It offers focused guidance on multiline strings and line length, with guardrails against risky or unnecessary refactoring.
Key features
- 01Prefer multiline strings for large text
- 02Keep lines near 80 characters
- 03Avoid breaking public APIs
- 04Exclude generated files from refactoring
Use cases
- 01Review Dart code for readability
- 02Format embedded SQL or PEM text
- 03Assess whether a refactor is appropriate
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ kevmoo/ dash_skills --skill dart-best-practicesAfter installing, type/dart-best-practicesin Claude Code to confirm it loaded.
Bundled filesevals/evals.json
Details
From the project READMEDart 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
varorfinalwhere 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:
final pem = '-----BEGIN RSA PRIVATE KEY-----\n' +
base64Encode(fullBytes) +
'\n-----END RSA PRIVATE KEY-----';
Prefer:
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_charslint 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.