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 zakariaf/Flutter-Skills --skill lint-and-style-configgit clone --depth 1 https://github.com/zakariaf/Flutter-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/zakariaf/flutter-skills/lint-and-style-config)<a href="https://agentmods.dev/skills/zakariaf/flutter-skills/lint-and-style-config"><img src="https://agentmods.dev/badge/skills/zakariaf/flutter-skills/lint-and-style-config/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/zakariaf/flutter-skills/lint-and-style-config"><img src="https://agentmods.dev/badge/skills/zakariaf/flutter-skills/lint-and-style-config.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.00209 | $0.02955 |
| Opus 5 | $0.00105 | $0.01477 |
| Sonnet 5 | $0.00042 | $0.00591 |
| Haiku 4.5 | $0.00021 | $0.00296 |
Grade A, and why
lint-and-style-config scanned grade A with 0 findings 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 11d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 248 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Lint & Style Config
Style is not taste; it is toolchain-enforced. dart format owns whitespace, the
analyzer owns correctness, and a small set of silence-producing bug classes
are promoted to build-failing errors. This skill governs the
analysis_options.yaml itself and the mechanics that decide whether it actually
does anything. Applies whenever you edit that file, add or silence a lint, or
bump the SDK/ruleset.
Read the reference for the task at hand:
references/rule-catalog.md— every promoted rule and its bug class, the deliberate downgrades, the contestedpublic_member_api_docscall, and the complexity-limit table.references/config-mechanics.md— the include-pin trap,errors:-re-ranks vslinter:-enables, sealed-switch analyze-vs-compile, coverage mirroring, the riverpod_lint plugin, and suppression discipline.
Copy examples/analysis_options.yaml into the package root as the starting
config. Run scripts/verify-include-pin.sh and scripts/lint-gates.sh before a
PR.
Non-negotiable rules
dart formatis the only whitespace authority. Never hand-format, never argue with it, never// dart format offexcept around a hand-laid table with a justifying comment. CI runsdart format --set-exit-if-changed ..- Build on
very_good_analysis, pinned to the version-numbered include. Never the bareanalysis_options.yaml— apub upgrademust not silently change what counts as an error. VGA already setsstrict-casts,strict-inference,strict-raw-types; do not restate them in alanguage:block (redundant config drifts and contradicts). - An info is a failure. CI runs
dart analyze --fatal-infos --fatal-warnings. Unaddressed infos accumulate into noise that hides real issues. - Promote only silence-producing bug classes to error — dropped Futures,
swallowed failure, dead-context-after-await, resource leaks, dynamic-boundary
type holes, non-exhaustive enum switches,
print. Not style preferences. - A promotion under
errors:only works if the base ruleset already enables the rule.errors:re-ranks existing diagnostics; it cannot turn on an off rule. To enable a rule VGA omits, add it underlinter: rules:first. - Never mix list and map form in
linter: rules:.- ruleitems andrule: trueentries in one block is a parse error — a broken analyzer, which is a green build. To disable a base rule, useerrors: <rule>: ignore. - CI must build, not merely analyze. Sealed-switch exhaustiveness is a
compile error, not a lint; an
errors:override cannot be trusted to silence it, and any code path that reachesdart compilestill fails there — an analyze-only gate can go green over code that will not build. - Exclude generated code, and mirror the exact globs in coverage filtering. Otherwise generated files dilute the coverage number until it is meaningless.
- Suppressions are line-scoped only, with a same-line/above reason. Never
// ignore_for_file:on a promoted rule; never any suppression on an architecture/import gate. Prefer fixing the code. - Never add
custom_lint. riverpod_lint 3.x runs on the first-party plugin system; its diagnostics fire on a plainflutter analyze.
What ships with it
6 files 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.
- 11d ago First seen · 248 lines · 209 tokens per session scan A 3e45b3e44ab6
lint-and-style-config is a skill published in the GitHub repository zakariaf/Flutter-Skills (2 stars, last pushed 13d ago), licensed MIT. It adds 209 tokens to every session and 2,955 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
cw-gates
Use before claiming any Codewhale change is done, green, or ready to land: the focused-to-broad verification ladder, the budget checks CI enforces, and the rules for what counts as a passing test.
writing
A writing guide for turning verified facts and calculations into finished text for a specific audience. It follows the requested language, structure, and length.
feishu
Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI/MCP setup without hardcoding credentials.
mcp-scripting
Write mcpScript JavaScript for discovering, inspecting, and calling MCP tools.
implementation-readiness
Verify BRD-lite, PRD, SRS/FRS, UX, and test prerequisites before implementation starts.
skill-benchmark
Benchmark AI skill effectiveness by measuring implementation quality against legacy constraints.