dart-seal-type-hierarchies SKILL.md skillA

dart-seal-type-hierarchies from kevmoo/dash_skills is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add kevmoo/dash_skills/dart-seal-type-hierarchies@git:20260913.6c39005

Pins git:20260913.6c39005 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
kevmoo/dash_skills
Path
skills/dart-seal-type-hierarchies/SKILL.md
Versions recorded
2
Latest version
git:20260913.6c39005, committed Sep 13, 2026
First version recorded
Sep 13, 2026
Size
5,602 bytes
Repository stars
148
License
Apache-2.0

Identify closed type hierarchies that are not declared `sealed`, and seal them so the compiler can enforce switch exhaustiveness. Covers the same-library requirement, the public-API breaking-change tradeoff, and the migration from `is` cascades to exhaustive switches.

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# Seal Type Hierarchies

## 1. When to use this skill

Use this skill when:

- A package declares an abstract base type whose subtypes are all defined in the
  same library, but the base type is not marked `sealed`.
- Code branches over the members of such a hierarchy with `is` checks or a
  non-exhaustive `switch`, so adding a subtype later fails silently at runtime
  instead of loudly at compile time.
- Reviewing a new type hierarchy and deciding whether it should be open to
  external subtyping.

### When NOT to use (Abstention Guardrails)

Do NOT seal a type when:

- **Subtypes span multiple libraries**: `sealed` requires every direct subtype
  to be declared in the same library as the base type. If subtypes live in other
  files (and are not `part of` the same library), the code will not compile.
  Either move them or leave the hierarchy open.
- **The type is public API and external extension is intended**: Sealing a type
  exported from a published package is a **breaking change** for any downstream
  package that extends or implements it. Plugin interfaces, visitor bases, and
  extension points are meant to be open. Do not seal them to win exhaustiveness.
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add kevmoo/dash_skills/dart-seal-type-hierarchies@sha256:608af5ced2b2353f

The line at the top of this page pins the label git:20260913.6c39005, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_3seerrubswaxwxri.svg)](https://markdownregistry.com/a/art_3seerrubswaxwxri)

2 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 2 versions of this file, all committed on Sep 13, 2026.

versioncommittedcommitsizeaudit
git:20260913.6c39005 latest2026-09-13 6c39005 5,602 BA view · diff
git:20260913.2ee462a2026-09-13 2ee462a 5,607 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (5602 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

kevmoo/dash_skills · 148 stars · license Apache-2.0 · pushed 2026-11-03 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_3seerrubswaxwxri
GET https://markdownregistry.com/api/v1/resolve?ref=kevmoo/dash_skills/dart-seal-type-hierarchies
GET https://markdownregistry.com/api/v1/blob/608af5ced2b2353f82571a038be190c56e069c642f9d31c6831a407608e10a14

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from kevmoo/dash_skills

dart-best-practices SKILL.md skill
kevmoo/dash_skills · skills/dart-best-practices/SKILL.md · General best practices for Dart development. Covers code style, effective Dart, and language features.
git:20260913.6c39005 · audit A · 148 stars
dart-doc-validation SKILL.md skill
kevmoo/dash_skills · skills/dart-doc-validation/SKILL.md · Best practices for validating Dart documentation comments. Covers using `dart doc` to catch unresolved references and…
git:20260913.6c39005 · audit A · 148 stars
dart-long-lines SKILL.md skill
kevmoo/dash_skills · skills/dart-long-lines/SKILL.md · Guidelines for handling long lines in Dart code to adhere to the 80-column rule. The `lines_longer_than_80_chars` lint.
git:20260913.6c39005 · audit A · 148 stars
dart-matcher-best-practices SKILL.md skill
kevmoo/dash_skills · skills/dart-matcher-best-practices/SKILL.md · Best practices for using `expect` and `package:matcher`. Focuses on readable assertions, proper matcher selection, and…
git:20260913.6c39005 · audit A · 148 stars
dart-modern-features SKILL.md skill
kevmoo/dash_skills · skills/dart-modern-features/SKILL.md · Guidelines for using modern Dart features (v3.0 - v3.10) such as Records, Extension Types, Class Modifiers, Wildcards…
git:20260924.0b6371c · audit A · 148 stars
dart-multiline-strings SKILL.md skill
kevmoo/dash_skills · skills/dart-multiline-strings/SKILL.md · Guidelines and best practices for refactoring consecutive prints, single-line string concatenations, and complex output…
git:20260913.6c39005 · audit A · 148 stars
dart-package-maintenance SKILL.md skill
kevmoo/dash_skills · skills/dart-package-maintenance/SKILL.md · Guidelines for maintaining external Dart packages, covering versioning, publishing workflows, and pull request…
git:20261014.3975f56 · audit A · 148 stars
dart-test-coverage SKILL.md skill
kevmoo/dash_skills · skills/dart-test-coverage/SKILL.md · Understand and improve test coverage in a Dart package. Helps agents run coverage, interpret results, and identify…
git:20260913.6c39005 · audit A · 148 stars
dart-test-fundamentals SKILL.md skill
kevmoo/dash_skills · skills/dart-test-fundamentals/SKILL.md · Core concepts and best practices for `package:test`. Covers `test`, `group`, lifecycle methods (`setUp`, `tearDown`)…
git:20261017.ce6cdbd · audit A · 148 stars
dash-discover SKILL.md skill
kevmoo/dash_skills · skills/dash-discover/SKILL.md · Diagnoses latent architectural modernization opportunities across Dart and Flutter packages (language idioms, testing…
git:20261030.3a1a8c4 · audit A · 148 stars
profile-dart-code SKILL.md skill
kevmoo/dash_skills · skills/profile-dart-code/SKILL.md · Profile Dart command-line applications using the VM Service protocol to capture CPU samples and identify performance…
git:20260913.6c39005 · audit B · 148 stars

Every file in kevmoo/dash_skills

Browse by kind, by grade A, or by owner.