Skip to content
Development
Skill

/dart-best-practices

General best practices for Dart development. Covers code style, effective Dart, and language features.

BOOST
From plugin
dash-skills
14712 skills
Install
$ npx -y skills add kevmoo/dash_skills --skill dart-best-practices --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/dart-best-practices

Context preview

The summary Claude sees to decide when to auto-load this skill.

General best practices for Dart development. Covers code style, effective Dart, and language features.

SKILL.md

dart-best-practices.SKILL.md
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:**

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_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

Read more
Ships withdash-skills

Agent Skills for Dart and Flutter ecosytem

Get the whole plugin

Other skills on dash-skills.