
dart-skills-lint-validation
✓ Official★ 2,600by flutter · part of flutter/skills
Use the dart_skills_lint CLI to validate skills. Choose the appropriate workflow based on your environment:
Use the dart_skills_lint CLI to validate skills. Choose the appropriate workflow based on your environment:
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.
name: dart-skills-lint-validation description: |- Use this skill when you need to validate AI agent skills with dart_skills_lint — running the linter, interpreting failures, fixing violations, and authoring custom rules. metadata: internal: true
Validating Skills with dart_skills_lint
This skill covers day-to-day use: running the linter, walking
through a failing run, and writing a custom rule when defaults
aren't enough. For first-time wiring (adding the dep, creating the
config file, generating a baseline) see
dart-skills-lint-setup. The
full rule reference (default severities, diagnostic shapes,
fixability) lives in RULES.md.
Workflow for a failing run
- Run the validator.
- Read the errors. Each diagnostic names the rule that fired, the offending value, and a suggested fix when one applies.
- Fix the violations. For fixable rules
(
check-absolute-paths,check-trailing-whitespace,invalid-skill-name), pass--fixto write the corrections to disk; add--dry-runto preview the diff first. - Re-run to confirm the run is clean.
Task progress
- Run validator
- Read errors
- Fix violations (manual or
--fix/--fix --dry-run) - Verify clean run
Authoring a custom rule
Extend SkillRule and pass the rule into validateSkills:
import 'package:dart_skills_lint/dart_skills_lint.dart';
class DeprecatedSkillRule extends SkillRule {
@override
final String name = 'deprecated-skill';
@override
final AnalysisSeverity severity = AnalysisSeverity.warning;
@override
Future<List<ValidationError>> validate(SkillContext context) async {
final errors = <ValidationError>[];
final yaml = context.parsedYaml;
if (yaml == null) return errors;
if (yaml['metadata']?['deprecated'] == true) {
errors.add(ValidationError(
ruleId: name,
severity: severity,
file: 'SKILL.md',
message: 'This skill is marked as deprecated.',
));
}
return errors;
}
}Wire it up in a Dart test:
import 'package:dart_skills_lint/dart_skills_lint.dart';
import 'package:test/test.dart';
void main() {
test('skills pass with deprecated-skill custom rule', () async {
final config = await ConfigParser.loadConfig();
await validateSkills(
config: config,
customRules: [DeprecatedSkillRule()],
);
});
}Related
dart-skills-lint-setup— first-time wiring.RULES.md— canonical rule reference.README.md— installation, configuration, integration recipes.
npx skills add https://github.com/flutter/skills --skill dart-skills-lint-validationRun this in your project — your agent picks the skill up automatically.
Running the linter
If dart_skills_lint is in pubspec.yaml:
dart run dart_skills_lint:cli -d .agents/skillsIf it's installed globally with dart pub global activate:
dart pub global run dart_skills_lint:cli -d .agents/skillsRun dart run dart_skills_lint:cli --help for the full flag list
(skip the inline duplicate so it never goes stale).
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.