
Skill
dart-skills-lint-validation
validate agent skills with dart_skills_lint
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.
SKILL.md
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.
Running the linter
If dart_skills_lint is in pubspec.yaml:
dart run dart_skills_lint:cli -d .agents/skills
If it's installed globally with dart pub global activate:
dart pub global run dart_skills_lint:cli -d .agents/skills
Run dart run dart_skills_lint:cli --help for the full flag list
(skip the inline duplicate so it never goes stale).
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();
expect(
config.directoryConfigs,
isNotEmpty,
reason: 'Configuration directoryConfigs should not be empty.',
);
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.
More skills from the agent-plugins repository
View all 24 skillsdart-add-unit-test
write unit tests for Dart code
Jul 15DartTestingdart-build-cli-app
build Dart command line applications
Jul 15CLIDartdart-collect-coverage
collect Dart test coverage reports
Jul 15DartReportingTestingdart-fix-runtime-errors
debug and fix Dart runtime errors
Jul 15DartDebuggingdart-generate-test-mocks
generate mock objects for Dart tests
Jul 15DartTestingdart-migrate-to-checks-package
migrate test matchers to checks package
Jul 15DartMigrationTesting
More from Flutter (Google)
View publisherdart-resolve-package-conflicts
resolve Dart package version conflicts
agent-plugins
Jul 15DartDebuggingEngineeringdart-run-static-analysis
run static analysis and apply fixes
agent-plugins
Jul 15Code AnalysisDartDebuggingdart-setup-ffi-assets
package C/C++ assets for Dart
agent-plugins
Jul 15DartDeploymentEngineeringdart-skills-lint-setup
configure dart_skills_lint for Dart projects
agent-plugins
Jul 15DartPlugin DevelopmentQAdart-use-ffigen
generate FFI bindings with ffigen
agent-plugins
Jul 15DartEngineering