dart-skills-lint-validation

Utilisez l'interface en ligne de commande dart_skills_lint pour valider les compétences. Choisissez le flux de travail approprié en fonction de votre environnement :

npx skills add https://github.com/flutter/skills --skill dart-skills-lint-validation

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

  1. Run the validator.
  2. Read the errors. Each diagnostic names the rule that fired, the offending value, and a suggested fix when one applies.
  3. Fix the violations. For fixable rules (check-absolute-paths, check-trailing-whitespace, invalid-skill-name), pass --fix to write the corrections to disk; add --dry-run to preview the diff first.
  4. 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

Plus de skills de flutter

adding-release-notes
flutter
Ajoute des descriptions de changements destinés aux utilisateurs dans les notes de version de DevTools. À utiliser pour documenter les améliorations, correctifs ou nouvelles fonctionnalités dans le fichier NEXT_RELEASE_NOTES.md.
official
dart-modern-features
flutter
Pour trouver des candidats à la modernisation :
official
api-review
flutter
Examine le code spécifié par rapport aux directives canoniques de conception d'API. Utilisez cette compétence lorsque l'utilisateur demande une revue d'API ou souhaite vérifier que le code respecte la conception d'API…
official
code-documentation
flutter
Guide pour rédiger une documentation de code efficace, incluant les docstrings, JSDoc, dartdoc et les commentaires d'implémentation. Utilisez cette compétence lors de l'écriture de nouveau code, de l'ajout…
official
dart-add-unit-test
flutter
Write and organize unit tests for functions, methods, and classes using `package:test`. Use when creating new logic or fixing bugs to ensure code remains…
official
dart-build-cli-app
flutter
Structure du point d’entrée, codes de sortie, scripts multiplateformes. À utiliser lors de la création d’utilitaires en ligne de commande, de scripts ou d’applications.
official
dart-collect-coverage
flutter
Collecter la couverture à l'aide du package de couverture et créer un rapport LCOV
official
dart-fix-runtime-errors
flutter
Utilise get_runtime_errors et lsp pour récupérer une trace de pile active, localiser la ligne en échec, appliquer un correctif et vérifier la résolution via hot_reload.
official