Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add kevmoo/dash_skills --skill dash-discovergit clone --depth 1 https://github.com/kevmoo/dash_skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kevmoo/dash_skills/dash-discover)<a href="https://agentmods.dev/skills/kevmoo/dash_skills/dash-discover"><img src="https://agentmods.dev/badge/skills/kevmoo/dash_skills/dash-discover/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kevmoo/dash_skills/dash-discover"><img src="https://agentmods.dev/badge/skills/kevmoo/dash_skills/dash-discover.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00037 | $0.01356 |
| Opus 5.5 | $0.00015 | $0.00542 |
| Sonnet 5.5 | $0.00007 | $0.00271 |
| Haiku 4.5 | $0.00004 | $0.00136 |
Grade C, and why
dash-discover scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Hidden instructionshighPrompt injection
Directives inside HTML comments, invisible characters or bidirectional overrides are read by the model and not by the person reviewing the file.
<!-- prettier-ignore --> How it starts
The opening of the file, as written. The whole thing — 142 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Dash Discover (Meta-Skill)
The Meta-Skill Discovery Engine evaluates a Dart or Flutter project's architecture, language idioms, testing patterns, and documentation health to uncover latent modernization opportunities that standard static analysis passes ignore.
1. When to use this skill
Use this skill when:
- Asked questions like: "Am I doing this right?", "Am I holding it right?", or "What skills should I use on this repository?"
- Entering a new or unfamiliar Dart/Flutter repository and determining where to focus modernization effort.
dart analyzereports clean code (0 errors, 0 warnings), but the codebase may still harbor outdated pre-Dart 3 constructs, legacy matcher assertions, unstructured CLI entrypoints, or rotting doc examples.
When NOT to use (Abstention Guardrails)
Do NOT run or prescribe discovery scans when:
- Non-Dart / Non-Flutter Projects: The repository or directory has no
pubspec.yamlor Dart source files (e.g. pure documentation repositories or external language services). - Targeted Single-File Edits or Bug Fixes: The user is requesting a narrow, isolated bug fix or single-file adjustment. Do not derail the turn into a broad repository-wide architectural audit unless specifically solicited.
- Active In-Flight Breaking Migrations: The repository is midway through a breaking SDK upgrade or uncommitted refactoring. Allow primary migrations to stabilize before running discovery sweeps.
2. Core Mental Model: The Analyzer Blindspot
Static analysis (dart analyze) verifies syntactic and semantic correctness,
not architectural quality or modern idiomatic design. A package can pass
dart analyze --fatal-infos with zero warnings while simultaneously:
- Using 7-branch polymorphic
else if (x is Y)cascades instead of concise Dart 3 switch expressions with pattern destructuring. - Relying on legacy
package:testexpect(actual, matcher)calls instead of fluent, type-safepackage:checks. - Storing rotting, unverified code snippets in
/// ```doc comments instead of automated{@example}region testing. - Building ad-hoc monolithic 300+ line
bin/main.dartentrypoints withoutpackage:args/command_runner.dart.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +2 lines 47942a329145
- 1mo ago First seen · 140 lines · 37 tokens per session scan C e8f8b131c1c1
dash-discover is a skill published in the GitHub repository kevmoo/dash_skills (147 stars, last pushed yesterday), licensed Apache-2.0. It adds 37 tokens to every session and 1,356 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it C with 1 finding (hidden instructions). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-13.
Other skills, from other repositories
no-bare-casts
Writing as in TypeScript or TSX production code, modifying a file that contains a bare as cast, silencing a type error with a cast, encountering as unknown as, or reviewing a cast site.
splitting-oversized-modules
Split an oversized Python module (a thousand-plus-line logic.py, models.py, api.py, or its test file) into a package of one module per concern, mechanically and provably without changing behavior. Use on a request to split / break up / decompose a god module or move functions out of one, once a human has agreed to…
splitting-oversized-modules
Split an oversized Python module (a thousand-plus-line logic.py, models.py, api.py, or its test file) into a package of one module per concern, mechanically and provably without changing behavior. Use on a request to split / break up / decompose a god module or move functions out of one, once a human has agreed to…
r-tidyverse-style
Use when the user asks to review or clean up R code for tidyverse style, standardize formatting or names, remove redundant comments or wrappers, or make a behavior-preserving style pass. Also use when writing substantial new R package code if the user requests tidyverse style or the package already follows it. Not for…
solid-principles
SOLID principles checklist with Java examples. Use when a class has too many responsibilities, an abstraction leaks, or a dependency points the wrong way, and when the user asks about Single Responsibility, Open/Closed, Liskov, Interface Segregation or Dependency Inversion. For naming, duplication and method length…
ring:auditing-dependency-security
Auditing a dependency for supply-chain risk before install (pip/npm/go/cargo): checks typosquatting, maintainer/age risk, vulnerability DBs (OSV, GHSA, Socket), and lockfile hash pinning, then emits a risk score and approve/conditional/escalate/block decision. Use when adding or updating a dependency, reviewing a…