Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/dart_skills_lint_workflow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: dart_skills_lint
permissions: read-all

on:
pull_request:
paths:
- 'skills/**'
- 'tool/dart_skills_lint/**'
- '.github/workflows/dart_skills_lint_workflow.yaml'
push:
branches: [ main ]
paths:
- 'skills/**'
- 'tool/dart_skills_lint/**'
- '.github/workflows/dart_skills_lint_workflow.yaml'
schedule:
- cron: '0 0 * * 0' # weekly

defaults:
run:
working-directory: tool/dart_skills_lint

jobs:
analyze_and_test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: dart-lang/setup-dart@v1
with:
sdk: stable

- run: dart pub get

- run: dart analyze --fatal-infos

- run: dart test

validate_skills:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dart-lang/setup-dart@v1
with:
sdk: stable

- run: dart pub get

- name: Validate skills
run: dart run dart_skills_lint

formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dart-lang/setup-dart@v1
with:
sdk: stable

- run: dart pub get

- run: dart format --output=none --set-exit-if-changed .
3 changes: 0 additions & 3 deletions tool/dart_skills_lint/analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
#
# - analysis_options.yaml (this file)
# - https://github.com/flutter/packages/blob/main/analysis_options.yaml
#
# This file contains the analysis options used for code in the flutter/flutter
# repository.

analyzer:
language:
Expand Down
1 change: 1 addition & 0 deletions tool/dart_skills_lint/dart_skills_lint.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
dart_skills_lint:
rules:
check-relative-paths: error
check-absolute-paths: error
Comment thread
reidbaker marked this conversation as resolved.
directories:
- path: ".agents/skills"
ignore_file: ".agents/skills/ignore.json"
Expand Down
2 changes: 0 additions & 2 deletions tool/dart_skills_lint/lib/src/validator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,6 @@ class Validator {
return _ruleOverrides[rule.name] ?? rule.defaultSeverity;
}



static const _nameField = 'name';
static const _descriptionField = 'description';
static const _licenseField = 'license';
Expand Down
4 changes: 2 additions & 2 deletions tool/dart_skills_lint/test/absolute_paths_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ void main() {
final ValidationResult result = await validator.validate(skillDir);

expect(result.isValid, isTrue);
expect(
result.warnings, contains(contains('Absolute filepath found in link: /absolute/path.md')));
expect(result.warnings,
contains(contains('Absolute filepath found in link: /absolute/path.md')));
});

test('flags windows absolute path starting with drive letter as error', () async {
Expand Down
8 changes: 4 additions & 4 deletions tool/dart_skills_lint/test/resolve_rules_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ void main() {
test('returns defaults when no args and empty config', () {
final ArgResults results = createParser().parse([]);
final config = Configuration();

final Map<String, AnalysisSeverity> resolved = resolveRules(results, config);

expect(resolved[relativePathsCheck.name], relativePathsCheck.defaultSeverity);
Expand All @@ -41,7 +41,7 @@ void main() {
relativePathsCheck.name: AnalysisSeverity.error,
absolutePathsCheck.name: AnalysisSeverity.warning,
});

final Map<String, AnalysisSeverity> resolved = resolveRules(results, config);

expect(resolved[relativePathsCheck.name], AnalysisSeverity.error);
Expand All @@ -55,7 +55,7 @@ void main() {
final config = Configuration(configuredRules: {
relativePathsCheck.name: AnalysisSeverity.error,
});

final Map<String, AnalysisSeverity> resolved = resolveRules(results, config);

expect(resolved[relativePathsCheck.name], AnalysisSeverity.warning);
Expand All @@ -66,7 +66,7 @@ void main() {
final config = Configuration(configuredRules: {
validYamlMetadataCheck.name: AnalysisSeverity.warning,
});

final Map<String, AnalysisSeverity> resolved = resolveRules(results, config);

expect(resolved[validYamlMetadataCheck.name], AnalysisSeverity.disabled);
Expand Down
Loading