Skip to content
Development
Skill

/dart-best-practices

Dart code quality conventions: naming, const/final/var hierarchy, single quotes, trailing commas, collection idioms, tear-offs, and import organization. Use only for Dart style-focused changes or reviews; never activate for configuration-only lint setup, unrelated feature work,

From plugin
agent-skills-standard
538200 skills1 MCP
Install
$ npx -y skills add hoangnguyen0403/agent-skills-standard --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.

Dart code quality conventions: naming, const/final/var hierarchy, single quotes, trailing commas, collection idioms, tear-offs, and import organization. Use only for Dart style-focused changes or reviews; never activate for configuration-only lint setup, unrelated feature work,

SKILL.md

dart-best-practices.SKILL.md
name: dart-best-practices
description: "Dart code quality conventions: naming, const/final/var hierarchy, single quotes, trailing commas, collection idioms, tear-offs, and import organization. Use only for Dart style-focused changes or reviews; never activate for configuration-only lint setup, unrelated feature work, or widget tests."
metadata:
  triggers:
    files:
      - "**/*.dart"
    keywords:
      - naming
      - convention
      - trailing comma
      - import
      - tear-off

Dart Best Practices

**Priority: P1 (HIGH)**

  • **Scoping**:
  • No global variables.
  • Private globals (if required) must start with `_`.
  • **Immutability**: Use `const` > `final` > `var`.
  • **Config**: Use `--dart-define` for secrets. Never hardcode API keys.
  • **Naming**: Follow [effective-dart](https://dart.dev/guides/language/effective-dart) (PascalCase classes, camelCase members).
  • **Strings**: Prefer single quotes; use double quotes only for interpolation needs.
  • **Trailing Commas**: Always use trailing commas for multi-line literals/params.
  • **Expression Bodies**: Prefer `=>` for single-expression functions/getters.
  • **Collections**:
  • Use `.map`, `.where`, `.fold`, `.any` over manual loops when clarity improves.
  • Type empty collections (`<String>[]`, `<String, User>{}`) to avoid `dynamic`.
  • Use collection `if`/`for` and spread operators for composable lists/maps.
  • **Async**: Always `await` futures unless intentionally fire-and-forget.
import 'models/user.dart'; // Good
import 'package:app/models/user.dart'; // Avoid local absolute

Anti-Patterns

  • **No var for non-obvious types**: Use `final` or explicit type; `var` only for locally-obvious short scopes.
  • **No package imports within same package**: Use relative imports for intra-package files.
  • **No top-level mutable state**: Encapsulate in class or inject via DI.
  • **No anonymous lambdas for tear-offs**: Prefer `list.forEach(doSomething)` over anonymous form.
Read more
Ships withagent-skills-standard

The portable SDLC standards layer for AI coding agents. Sync once, then work in your own runtime.

Get the whole plugin

Other skills on agent-skills-standard.