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.
mdr add kevmoo/dash_skills/dart-seal-type-hierarchies@git:20260913.6c39005Pins 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
mdr add kevmoo/dash_skills/dart-seal-type-hierarchies@sha256:608af5ced2b2353fThe 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.
[](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.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260913.6c39005 latest | 2026-09-13 | 6c39005 | 5,602 B | A | view · diff |
| git:20260913.2ee462a | 2026-09-13 | 2ee462a | 5,607 B | A | view |
Audit of the latest version
- 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
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.