Token导航 LogoToken导航

Agent Skill · 开发

dart-static-analysis(飞镖静态分析)

dart-static-analysis 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

dart-static-analysis 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 11,503。

总安装 1,728周安装 72GitHub Stars 63下载 576核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dart-static-analysis(飞镖静态分析)
来源仓库:https://github.com/dart-lang/skills
仓库路径:skills/dart-static-analysis
安装命令:
npx skills add https://github.com/dart-lang/skills --skill dart-static-analysis
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dart-lang/skills --skill dart-static-analysis

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

dart-static-analysis 配置并运行 Dart 静态分析器,识别潜在类型错误与代码异味。适用于新项目初始化、lint 规则定制或团队协作中的代码风格强制执行场景。支持通过 analysis_options.yaml 设置 formatter 规则,并 suppress 特定警告。

使用前请确认已安装 lints 包,并在 analyzer 节点启用 strict-inference 等严格模式。建议将分析结果集成至 IDE 插件,实现实时反馈而非仅依赖 CI 阶段检查。

来源仓库内路径:skills/dart-static-analysis

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/dart-lang/skills --skill dart-static-analysis;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

dart-static-analysis 怎么安装?

在终端执行 npx skills add https://github.com/dart-lang/skills --skill dart-static-analysis。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

dart-static-analysis 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

dart-static-analysis 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

dart-static-analysis 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

dart-static-analysis 用的人多吗?

公开数据是累计安装 1,728 次,近一周安装 72 次,下载 576 次,GitHub 63 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

dart-static-analysis 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
dart-static-analysis

飞镖静态分析 · 本页

1,72863需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Analyzing and Linting Dart Code

Contents

Configuring Analysis Options

Control static analysis by placing an analysis_options.yaml file at the root of your package.

  • Enforce Strict Type Checks: Always enable strict-casts, strict-inference, and strict-raw-types in the analyzer section to catch implicit dynamic casts and un-inferred types at compile time.
  • Configure Formatting: Define dart format rules within the formatter section (e.g., page_width and trailing_commas).
  • Exclude Generated Code: Use the exclude key to ignore generated files (e.g., **/*.g.dart, **/*.freezed.dart) to prevent false positives.

Managing Linter Rules

Rely on community-standard rule sets rather than maintaining a bespoke list of rules.

  • Use Standard Packages: Include package:lints/recommended.yaml for pure Dart projects or package:flutter_lints/flutter.yaml for Flutter projects.
  • Avoid Manual Ignores: AVOID ignoring lints manually (e.g., // ignore:...) unless absolutely necessary. Prefer fixing the root cause of the lint.
  • Bulk Fixes: DO use dart fix --apply to automatically resolve common lint violations and migration issues across the entire codebase.
  • Customize Severity: If a specific rule is too noisy but still valuable, change its severity in the errors map (e.g., todo: info) rather than disabling it entirely.

Resolving Type Promotion Failures

Type promotion occurs when flow analysis confirms a nullable variable is not null. Promotion fails when the compiler cannot guarantee that a value remains stable between the check and the usage.

Common causes for promotion failures include:

  1. Public or Non-Final Fields: External libraries could override public fields, and non-final fields can be mutated.
  2. Getters: The compiler cannot guarantee a getter returns the same value on subsequent calls.
  3. Write Captures: A variable is modified inside a closure or function expression, invalidating previous checks.

The Solution: DO resolve "non-promotion" reasons by assigning the field, getter, or captured variable to a local final variable before performing the null or type check. Local variables are guaranteed to be stable, allowing the compiler to safely promote the type.

Workflow: Static Analysis Setup and Execution

Use this checklist to initialize and enforce static analysis in a Dart project.

  • Task Progress: Setup Analysis

- Run dart pub add --dev lints (or flutter_lints). - Create analysis_options.yaml at the project root. - Include the recommended rule set (include: package:lints/recommended.yaml). - Enable strict language modes (strict-casts, strict-inference, strict-raw-types).

  • Task Progress: Execution & Remediation

- Run dart analyze to catch potential bugs and style violations early. - Run dart fix --apply to automatically resolve mechanical lint issues. - Review remaining errors manually. Run validator -> review errors -> fix root causes without using // ignore.

Workflow: Fixing Type Promotion

When dart analyze reports that a property or field cannot be promoted:

  • Task Progress: Fix Promotion

- Identify the failing variable (e.g., a public field, getter, or write-captured variable). - Declare a local final variable immediately before the conditional check. - Assign the un-promotable field/getter to the new local variable. - Perform the != null or is Type check on the *local* variable. - Update all references inside the conditional block to use the local variable. - Run dart analyze to verify the promotion failure is resolved.

Examples

High-Fidelity analysis_options.yaml

include: package:lints/recommended.yaml

analyzer:
  exclude:
    - "**/*.g.dart"
    - "**/*.freezed.dart"
  language:
    strict-casts: true
    strict-inference: true
    strict-raw-types: true
  errors:
    todo: info
    invalid_assignment: error

formatter:
  page_width: 80
  trailing_commas: preserve

linter:
  rules:
    # Disable specific rules if they conflict with project architecture
    avoid_classes_with_only_static_members: false
    # Enable additional strict rules
    always_declare_return_types: true
    cancel_subscriptions: true

Fixing Type Promotion via Local Variables

Anti-Pattern: Checking a getter or public field directly. The compiler throws an error because _value is a getter and might return a different result on the second call.

abstract class Example {
  int? get _value => Random().nextBool() ? 123 : null;
}

void printParity(Example x) {
  if (x._value != null) {
    // ERROR: '_value' refers to a getter so it couldn't be promoted.
    print(x._value.isEven);
  }
}

Best Practice: Assign to a local final variable to ensure stability.

abstract class Example {
  int? get _value => Random().nextBool() ? 123 : null;
}

void printParity(Example x) {
  final localValue = x._value; // 1. Assign to local final variable

  if (localValue != null) {    // 2. Check the local variable
    print(localValue.isEven);  // 3. Use the promoted local variable (OK)
  }
}

*Related Skills: dart-effective-style, dart-api-design*

平台分布

Codex

34.04%
按下载量换算196

Claude

27.92%
按下载量换算161

Cursor

19.22%
按下载量换算111

Gemini CLI

9.51%
按下载量换算55

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills