Validates an in-progress PR or feature branch of dart_skills_lint against known downstream ecosystem consumers. Use when assessing breaking changes across external repositories during PR evaluation, testing migrations against the changelog, or determining necessary backwards compatibility shims.
71
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
[!IMPORTANT] No Downstream Commits Allowed This skill is focused entirely on evaluating breaking changes within
dart_skills_lintduring PR review and changelog validation. All modifications applied to downstream consumer repositories (such as temporarily editingpubspec.yamlref:hashes or updating calling syntax to verify migrations) are strictly diagnostic and transient. You must never stage, commit, or push code inside external downstream repositories during this workflow.
Verify Local Linter State (dart_skills_lint)
dart_skills_lint is clean (git status).dart test).1e1f280...).Locate & Check Out Downstream Consumers
resources/known_consumers.md to review typical consumer repositories (flutter/flutter, flutter/devtools, dart-lang/site-www, etc.) and their specific consumption subdirectories.KIs), which frequently record configured system directory structures... or running localized, depth-limited searches like find .. -maxdepth 3 -name pubspec.yaml).find / -name ...). If a target repository cannot be found within adjacent workspace boundaries, immediately ask the user whether the repository is checked out locally and prompt for its path before evaluating.main or master). Do not run tests against dirty or out-of-date branches.For each downstream consumer under evaluation:
Update pubspec.yaml
dev/tools/pubspec.yaml or tool/pubspec.yaml).ref: field under the git configuration for dart_skills_lint to exact match the in-progress commit hash:
dart_skills_lint:
git:
url: https://github.com/flutter/agent-plugins
path: tool/dart_skills_lint
ref: <LATEST_COMMIT_HASH>Resolve Dependencies & Run Verification Tests (Legacy Check)
flutter pub get; standard pure Dart repositories require dart pub get).test/validate_skills_test.dart or running flutter test / dart test).Perform Diagnostic API Migration & Boundary Verification After verifying across each target consumer that legacy calls function properly without regressions in Step 2:
dart_skills_lint (for example, transitioning resolvedRules arguments to resolvedRuleConfigs).dart analyze --fatal-infos <modified_test_or_package_path>) within the consumer's package directory after completing the migration.
import 'package:dart_skills_lint/dart_skills_lint.dart';).Undefined class or requiring internal implementation imports (import 'package:dart_skills_lint/src/...';) to compile indicates an explicit public export deficit inside lib/dart_skills_lint.dart.flutter test / dart test) to guarantee exact behavioral alignment before accepting the upstream change.Whenever tests fail or dependency resolution encounters API friction, you must evaluate the nature of the breakage and pause for a deliberate human-in-the-loop decision before taking action.
@Deprecated getters mapping new types back to legacy structures, constructor parameter forwarding, or fallback exports).dart_skills_lint/CHANGELOG.md.Present your diagnostic summary to the human and request a deliberate path forward. The choice between mitigating a break inside the linter versus making a breaking change in downstream libraries is strictly a human decision based on ecosystem trade-offs.
If the decision is to soften or eliminate the breaking change from dart_skills_lint:
dart_skills_lint code to introduce the backward-compatible shim (such as deprecated getters/constructors or compatibility exports).// TODO(...)) for future removal.dart format .), verify static analysis (dart analyze --fatal-infos), and confirm tests pass locally (dart test).pubspec.yaml, and run tests again until the consumer cleanly compiles and passes.If the human instructs you not to mitigate (or if mitigation is structurally impossible) and accepts the breaking change:
dart_skills_lint/CHANGELOG.md.CHANGELOG.md are incomplete, confusing, or insufficient to cleanly migrate the downstream code, treat this as an explicit evaluation failure. Immediately propose targeted additions and clarity improvements to dart_skills_lint/CHANGELOG.md.pub get) and test suites until the downstream package runs cleanly.Constraint — Do Not Commit: Remember that any migration edits made across the downstream codebase exist purely to verify that dart_skills_lint/CHANGELOG.md instructions function cleanly in practice. Do not stage or commit these edits inside the consumer repository.
After successfully evaluating and resolving one target repository:
git checkout -- . or git restore . across the modified paths) before proceeding to the next candidate, unless expressly instructed by the user to leave uncommitted changes on disk for local inspection.dart_skills_lint, and which proved out changelog migration workflows.resources/known_consumers.md or halt execution.8aaa41d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.