Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

dart-run-static-analysis — Claude Code skill: how to install

Runs dart analyze to catch errors and dart fix --apply to resolve mechanical linter issues. Helps verify Dart code quality during development and before commits.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add dart-lang/skills --skill dart-run-static-analysis -a claude-code
Open on GitHub

What dart-run-static-analysis does

This skill structures static analysis workflows for Dart and Flutter packages. The agent first verifies that analysis_options.yaml exists at the project root, then executes dart analyze or calls the analyze_files tool. When info-level diagnostics must block the workflow, it passes the --fatal-infos flag.

The second stage applies automated fixes. It runs dart fix --dry-run first so you can inspect proposed modifications before modifying disk state. After applying changes with dart fix --apply, the skill formats the touched files using dart format . and runs the static analysis workflow again. If the target lint rules are not enabled in analysis_options.yaml, automated fixes will ignore them entirely.

The analyzer configuration supports strict type verification via strict-casts, strict-inference, and strict-raw-types. False positives can be filtered out globally using the analyzer: exclude list in analysis_options.yaml or silenced with inline ignore comments in source files.

What it helps with

  • detect type errors and linter warnings across Dart files
  • apply automated migrations and syntax repairs using dart fix
  • configure strict type checking rules in analysis_options.yaml
  • format touched Dart files according to project formatting guidelines

Example prompts for the agent

  • Run static analysis on this Dart project and treat info diagnostics as fatal errors
  • Perform a dry run with `dart fix --dry-run` and apply safe automated fixes
  • Inspect `analysis_options.yaml` and enable strict type checks for this package

How to install dart-run-static-analysis

1Skills CLI (Vercel)

npx skills add dart-lang/skills --skill dart-run-static-analysis -a claude-code

2Manually: put the files in place

~/.claude/skills/dart-run-static-analysis/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/dart-run-static-analysis/

From the same set7

The whole set →

Similar

substrate-vulnerability-scanner trailofbits Scans Substrate and Polkadot pallets for 7 critical vulnerabilities such as panic DoS and integer overflow. Useful when auditing FRAME runtimes before mainnet launch. Claude Code CX Codex Cursor +1 5,200installs second-opinion trailofbits Runs external CLI code reviews via Codex or Antigravity. It inspects dirty working trees, branch diffs, and specific commits without editing files. Claude Code CX Codex Cursor +1 5,200installs shipping-artifacts phuryn Generates core documentation to make vibe-coded applications reviewable before release. It maps architecture, permission flows, and test coverage for audits. Claude Code CX Codex Cursor +1 1,700installs review-and-ship cursor This skill automates code review before shipping: checks for bugs, tests, and intent fit, then commits and opens a PR. Use it to verify your work is ready before merge. Claude Code CX Codex Cursor +1 2,500installs difit yoshiko-pg Starts a local difit viewer with your changes and asks you for the review. Whatever you type in the browser comes back to the agent on stdout. Claude Code CX Codex Cursor +1 2,200installs improve-codebase-architecture Matt Pocock This skill scans a codebase for architectural friction, then builds a visual HTML report with refactoring candidates. Use it before a deeper architecture review. Claude Code 1,163,035installs tdd Matt Pocock Guides the red-green TDD loop: ensures tests are written first, keep them at public interfaces, and avoid coupling to implementation details. Claude Code 1,141,062installs triage Matt Pocock This skill moves issues and external PRs through triage states, verification, and agent briefs. It fits maintainers managing an issue queue. Claude Code 990,453installs

Questions about dart-run-static-analysis

How do I install dart-run-static-analysis in Claude Code?

Run npx skills add dart-lang/skills --skill dart-run-static-analysis -a claude-code in your terminal. Once completed, the skill is ready for Claude Code.

What does the dart-run-static-analysis skill do?

It runs dart analyze to identify warnings and errors, then uses dart fix --apply to automatically resolve mechanical lint problems.

What must be configured before applying automated fixes?

The project root must contain analysis_options.yaml with the corresponding linter rules enabled. If a rule is not active in the configuration, dart fix cannot apply its automated resolution.

Source text

SKILL.md · BSD-3-Clause
---
name: dart-run-static-analysis
description: Execute `dart analyze` to identify warnings and errors, and use `dart fix --apply` to automatically resolve mechanical lint issues. Use during development to ensure code quality and before committing changes.
metadata:
  model: models/gemini-3.1-pro-preview
  last_modified: Fri, 24 Apr 2026 15:09:34 GMT
---
# Analyzing and Fixing Dart Code

## Contents
- [Analysis Configuration](#analysis-configuration)
- [Diagnostic Suppression](#diagnostic-suppression)
- [Workflow: Executing Static Analysis](#workflow-executing-static-analysis)
- [Workflow: Applying Automated Fixes](#workflow-applying-automated-fixes)
- [Examples](#examples)

## Analysis Configuration

Configure the Dart analyzer using the `analysis_options.yaml` file located at the package root.

- **Base Configuration:** Always include a standard rule set (e.g., `package:lints/recommended.yaml` or `package:flutter_lints/flutter.yaml`) using the `include:` directive.
- **Strict Type Checks:** Enable strict type checks under the `analyzer: language:` node to prevent implicit downcasts and dynamic inferences. Set `strict-casts: true`, `strict-inference: true`, and `strict-raw-types: true`.
- **Linter Rules:** Explicitly enable or disable specific rules under the `linter: rules:` node. Use a key-value map (`rule_name: true/false`) when overriding included rules, or a list (`- rule_name`) when defining a fresh set. Do not mix list and map syntax in the same `rules` block.
- **Formatter Configuration:** Configure `dart format` behavior under the `formatter:` node. Set `page_width` (default 80) and `trailing_commas` (`automate` or `preserve`).
- **Analyzer Plugins:** Enable custom diagnostics by adding plugins under the `analyzer: plugins:` node. Ensure the plugin package is added as a `dev_dependency` in `pubspec.yaml`.

## Diagnostic Suppression

When a diagnostic (lint or warning) yields a false positive or applies to generated code, suppress it explicitly.

- **File-level Exclusion:** Use the `analyzer: exclude:` node in `analysis_options.yaml` to exclude entire files or directories (e.g., `**/*.g.dart`) using glob patterns.
- **File-level Suppression:** Add `// ignore_for_file: <diagnostic_code>` at the top of a Dart file to suppress specific diagnostics for the entire file. Use `// ignore_for_file: type=lint` to suppress all linter rules.
- **Line-level Suppression:** Add `// ignore: <diagnostic_code>` on the line directly above the offending code, or appended to the end of the offending line.
- **Pubspec Suppression:** Add `# ignore: <diagnostic_code>` above the offending line in `pubspec.yaml` files (e.g., `# ignore: sort_pub_dependencies`).
- **Plugin Diagnostics:** Prefix the diagnostic code with the plugin name when suppressing plugin-specific issues (e.g., `// ignore: some_plugin/some_code`).

## Workflow: Executing Static Analysis

Use this workflow to identify type-related bugs, style violations, and potential runtime errors.

**Task Progress:**
- [ ] 1. Verify `analysis_options.yaml` exists at the project root.
- [ ] 2. Run the analyzer using the `analyze_files` MCP tool (if available) or the CLI command `dart analyze <target_directory>`.
- [ ] 3. Review the diagnostic output.
- [ ] 4. If info-level issues must be treated as failures, append the `--fatal-infos` flag.
- [ ] 5. Resolve reported errors manually or proceed to the Automated Fixes workflow.

## Workflow: Applying Automated Fixes

Use this workflow to resolve outdated API usages, apply quick fixes, and migrate code (e.g., Dart 3 migrations).

**Task Progress:**
- [ ] 1. Execute a dry run to preview proposed changes using the `dart_fix` MCP tool or CLI command `dart fix --dry-run`.
- [ ] 2. Review the proposed fixes to ensure they align with the intended architecture.
- [ ] 3. If additional fixes are required, verify that the corresponding linter rules are enabled in `analysis_options.yaml`.
- [ ] 4. Apply the fixes using the `dart_fix` MCP tool or CLI command `dart fix --apply`.
- [ ] 5. Format the modified code using the `dart_format` MCP tool or CLI command `dart format .`.
- [ ] 6. Run the static analysis workflow to verify all diagnostics are resolved.

## Examples

### Comprehensive `analysis_options.yaml`

```yaml
include: package:flutter_lints/recommended.yaml

analyzer:
  exclude:
    - "**/*.g.dart"
    - "lib/generated/**"
  language:
    strict-casts: true
    strict-inference: true
    strict-raw-types: true
  errors:
    todo: ignore
    invalid_assignment: warning
    missing_return: error

linter:
  rules:
    avoid_shadowing_type_parameters: false
    await_only_futures: true
    use_super_parameters: true

formatter:
  page_width: 100
  trailing_commas: preserve
```

### Inline Diagnostic Suppression

```dart
// Suppress for the entire file
// ignore_for_file: unused_local_variable, dead_code

void processData() {
  // Suppress for a specific line
  // ignore: invalid_assignment
  int x = '';
  
  const y = 10; // ignore: constant_identifier_names
}
```

© dart-lang · BSD-3-Clause · dart-lang/skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor