Creator · kevmoo
Last updated · Sep 4, 2026
|-
Sandbox only
Install targets
Codex install prompt
Install the "dart-modern-features" agent skill from https://github.com/kevmoo/dash_skills/tree/main/skills/dart-modern-features. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: |- After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"kevmoo-dart-modern-features","task":"Install dart-modern-features","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add kevmoo/dash_skills --skill dart-modern-features
Maintenance
fresh
9d since push
Risk
Safe to try
Quality score needs review
GitHub quality
143
68/100 Quality · 80/100 Trust
Coverage tags
Review notes
Quality score needs review · Stars/forks activity: 143 stars, 16 forks; issue activity unavailable in current metadata
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
PromisingUseful candidate, but compare it with alternatives before adopting.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
143 GitHub stars
Repo activity
143 stars, 16 forks
Maintenance
9d since push
License
Apache-2.0
Install
npx skills add kevmoo/dash_skills --skill dart-modern-features
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add kevmoo/dash_skills --skill dart-modern-featuresDo not use when
Agent safety v2
Good audit and safety signals with no high-risk permission hints in public metadata.
Review the audit page, then allow agent install in a sandboxed workflow.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20dart-modern-features%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20dart-modern-features%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/kevmoo-dart-modern-features/install
Agent should check
Copy prompt
Task: Use dart-modern-features in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20dart-modern-features%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/kevmoo-dart-modern-features/install
Install command: npx skills add kevmoo/dash_skills --skill dart-modern-features
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/kevmoo-dart-modern-features/install
LLM text format
/api/skills/kevmoo-dart-modern-features/install?format=text
Find alternatives
/api/skills/search?q=dart-modern-features&limit=3
Agent prompt
Use dart-modern-features for this task. Review https://www.openagentskill.com/api/skills/kevmoo-dart-modern-features/install, then install with: npx skills add kevmoo/dash_skills --skill dart-modern-featuresRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/kevmoo-dart-modern-features
LLM text
/api/registry/manifest/kevmoo-dart-modern-features?format=text
Install alias
/api/registry/install/kevmoo-dart-modern-features
Recommend
/api/registry/recommend?task=Use%20dart-modern-features%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Prototype with this skill first; keep a fallback candidate ready.
Role in stack
Fallback candidate
Primary fit
GitHub automation
Trust label
Prototype first
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
INFO143 GitHub stars
Stars/forks activity
CHECK143 stars, 16 forks; issue activity unavailable in current metadata
Recent maintenance
PASS9d since push
License clarity
PASSApache-2.0
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
Useful candidate, but compare it with alternatives before adopting.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Operate local tools
I need my agent to operate local files and desktop apps in a repeatable workflow.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Ingest, retrieve, and cite
A workflow for document-heavy agents that ingest files, create searchable knowledge, retrieve relevant context, and answer with grounded sources.
Alternative shortlist
Similar skills that may fit this task.
Run multimodal agents that operate desktop interfaces
Connect agents to hundreds of workflow automations
利用AI大模型,一键生成高清短视频 Generate short videos with one click using AI LLM.
Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
--- name: dart-modern-features description: |- Guidelines for using modern Dart features (v3.0 - v3.10) such as Records, Pattern Matching, Switch Expressions, Extension Types, Class Modifiers, Wildcards, Null-Aware Elements, and Dot Shorthands. key_features: - Records & Pattern Matching - Switch Expressions & Extension Types - Class Modifiers & Null-aware elements ---
# Dart Modern Features
## 1. When to use this skill
Use this skill when: - Writing or reviewing Dart code targeting Dart 3.0 or later. - Refactoring legacy Dart code to use modern, concise, and safe features. - Looking for idiomatic ways to handle multiple return values, deep data extraction, or exhaustive checking.
## Discovery
To find candidates for modernization:
### Switch Expressions Search for switch statements where every case assigns to the same variable or returns: - **Regex**: `switch\s*\([^)]+\)\s*\{\s*case`
### Pattern Matching Candidates Search for manual map or JSON property extraction and type checking: - **Regex**: `containsKey\(['"][^'"]+['"]\)` - **Regex**: `json\[['"][^'"]+['"]\]\s+is\s+`
### Null-Aware Elements Search for collection `if` statements checking for null: - **Regex**: `if\s*\(\w+\s*!=\s*null\)\s*\w+`
### Digit Separators Search for long numbers without separators: - **Regex**: `\b\d{6,}\b` (Matches numbers with 6 or more digits).
## 2. Features
### Records Use records as anonymous, immutable, aggregate structures to bundle multiple objects without defining a custom class. Prefer them for returning multiple values from a function or grouping related data temporarily.
**Avoid:** Creating a dedicated class for simple multiple-value returns. ```dart class UserResult { final String name; final int age; UserResult(this.name, this.age); }
UserResult fetchUser() { return UserResult('Alice', 42); } ```
**Prefer:** Using records to bundle types seamlessly on the fly. ```dart (String, int) fetchUser() { return ('Alice', 42); }
void main() { var user = fetchUser(); print(user.$1); // Alice } ```
### Patterns and Pattern Matching Use patterns to destructure complex data into local variables and match against specific shapes or values. Use them in `switch`, `if-case`, or variable declarations to unpack data directly.
**Avoid:** Manually checking types, nulls, and keys for data extraction. ```dart void processJson(Map<String, dynamic> json) { if (json.containsKey('name') && json['name'] is String && json.containsKey('age') && json['age'] is int) { String name = json['name']; int age = json['age']; print('$name is $age years old.'); } } ```
**Prefer:** Combining type-checking, validation, and assignment into a single statement. ```dart void processJson(Map<String, dynamic> json) { if (json case {'name': String name, 'age': int age}) { print('$name is $age years old.'); } } ```
### Switch Expressions Use switch expressions to return a value directly, eliminating bulky `case` and `break` statements.
**Avoid:** Using switch statements where every branch simply returns or assigns a value. ```dart String describeStatus(int code) { switch (code) { case 200: return 'Success'; case 404: return 'Not Found'; default: return 'Unknown'; } } ```
**Prefer:** Returning the evaluated expression directly using the `=>` syntax. ```dart String describeStatus(int code) => switch (code) { 200 => 'Success', 404 => 'Not Found', _ => 'Unknown', }; ```
### Class Modifiers Use class modifiers (`sealed`, `final`, `base`, `interface`) to restrict how classes can be used outside their defines library. Prefer `sealed` for defining closed families of subtypes to enable exhaustive checking.
**Avoid:** Using open `abstract` classes when the set of subclasses is known and fixed. ```dart abstract class Result {}
class Success extends Result {} class Failure extends Result {}
String handle(Result r) { if (r is Success) return 'OK'; if (r is Failure) return 'Error'; return 'Unknown'; } ```
**Prefer:** Using `sealed` to guarantee to the compiler that all cases are covered. ```dart sealed class Result {}
class Success extends Result {} class Failure extends Result {}
String handle(Result r) => switch(r) { Success() => 'OK', Failure() => 'Error', }; ```
### Extension Types Use extension types for a zero-cost wrapper around an existing type. Use them to restrict operations or add custom behavior without runtime overhead.
**Avoid:** Allocating new wrapper objects just for domain-specific logic or type safety. ```dart class Id { final int value; Id(this.value); bool get isValid => value > 0; } ```
**Prefer:** Using extension types which compile down to the underlying type at runtime. ```dart extension type Id(int value) { bool get isValid => value > 0; } ```
### Digit Separators Use underscores (`_`) in number literals strictly to improve visual readability of large numeric values.
**Avoid:** Long number literals that are difficult to read at a glance. ```dart const int oneMillion = 1000000; ```
**Prefer:** Using underscores to separate thousands or other groupings. ```dart const int oneMillion = 1_000_000; ```
### Wildcard Variables Use wildcards (`_`) as non-binding variables or parameters to explicitly signal that a value is intentionally unused.
**Avoid:** Inventing clunky, distinct variable names to avoid "unused variable" warnings. ```dart void handleEvent(String ignoredName, int status) { print('Status: $status'); } ```
**Prefer:** Explicitly dropping the binding with an underscore. ```dart void handleEvent(String _, int status) { print('Status: $status'); } ```
### Null-Aware Elements Use null-aware elements (`?`) inside collection literals to conditionally include items only if they evaluate to a non-null value.
**Avoid:** Using collection `if` statements for simple null checks. ```dart var names = [ 'Alice', if (optionalName != null) optionalName, 'Charlie' ]; ```
**Prefer:** Using the `?` prefix inline. ```dart var names = ['Alice', ?optionalName, 'Charlie']; ```
### Dot Shorthands Use dot shorthands to omit the explicit type name when it can be confidently inferred from context, such as with enums or static fields.
**Avoid:** Fully qualifying type names when the type is obvious from the context. ```dart LogLevel currentLevel = LogLevel.info; ```
**Prefer:** Reducing visual noise with inferred shorthand. ```dart LogLevel currentLevel = .info; ```
### Pragmatic Balance: When NOT to Over-Patternize Pattern matching and switch expressions should simplify code, not add syntactic overhead.
#### 1. Prefer `is` Type Promotion over `if-case` for Single Variables If you only need to check a type or promote a variable, use standard `is` checks instead of `if-case` or `case` patterns that introduce shadow aliases.
**Avoid:** ```dart // ❌ Anti-pattern: Introduces unnecessary alias variable `k` for (final MapEntry(:key, :value) in map.entries) { if (key case final String k when value != null) { process(k, value); } } ```
**Prefer:** ```dart // ✅ Promotes `key` directly in-place without extra variables for (final MapEntry(:key, :value) in map.entries) { if (key is String && value != null) { process(key, value); } } ```
#### 2. Consolidate Nullable Types in Switch Arms When mapping or returning values in a switch expression where both `null` and a type `T` are valid and passed through, match the nullable type `T?` directly rather than creating redundant `null` arms.
**Avoid:** ```dart // ❌ Redundant separate null arm switch (value) { final String s => s, null => null, _ => throw FormatException(...), } ```
**Prefer:** ```dart // ✅ Clean nullable pattern match switch (value) { final String? s => s, _ => throw FormatException(...), } ```
## Related Skills
- **[dart-best-practices]**: General code style and foundational Dart idioms that predate or complement the modern syntax features.
[dart-best-practices]: https://github.com/kevmoo/dash_skills/blob/main/skills/dart-best-practices/SKILL.md
Source provenance
Decision snapshot
recent repository activity
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for dart-modern-features, ready for a manual X post.
Before you hand an agent a repeatable workflow, give it a repeatable starting point. dart-modern-features: |- 143 stars https://www.openagentskill.com/skills/kevmoo-dart-modern-features?ref=x
Listing + install path for dart-modern-features: https://www.openagentskill.com/skills/kevmoo-dart-modern-features?ref=x Install: npx skills add kevmoo/dash_skills --skill dart-modern-features
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Registry indexed listing is attributed to kevmoo but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/kevmoo-dart-modern-features?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/kevmoo-dart-modern-features?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/kevmoo-dart-modern-features/audit)
[](https://www.openagentskill.com/skills/kevmoo-dart-modern-features?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)kevmoo
@kevmoo
Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
UI-TARS Desktop
Run multimodal agents that operate desktop interfaces
37.0K Starsn8n
Connect agents to hundreds of workflow automations
194.1K StarsMoneyPrinterTurbo
利用AI大模型,一键生成高清短视频 Generate short videos with one click using AI LLM.
88.5K StarsTasmota
Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
24.7K StarsPermission surface
no high-risk permission surface in public metadata
Agent outcomes
No agent outcome data yet
Docs
Usable metadata, review docs
Risk summary
Install readiness