Commit Graph

231 Commits

Author SHA1 Message Date
flutter-skills-sync-bot 864cf8797b chore: auto-sync skills directory from dart-lang/skills (#224) 2026-08-24 10:16:53 -07:00
Reid Baker f8408b8e76 feat: migrate from dart_skills_lint to skills_lint package (#226)
* feat: migrate from dart_skills_lint to skills_lint package

* Apply suggestion from @reidbaker

* test: improve skill linting and validation test robustness

* Update .github/workflows/skills_tool.yaml

* style: format test/lint_skills_test.dart

---------

Co-authored-by: Reid-Agent <269567208+reidbaker-agent@users.noreply.github.com>
2026-08-24 11:59:07 -04:00
Reid-Agent c3c71cf87c Migrate dart_skills_lint and .agents to Dart skills package and dart install (#222)
* Migrate dart_skills_lint and .agents to Dart skills package and dart install

* docs: align dart_skills_lint recipes with dart install and refresh skills_config.json

* docs: install all active remote skills and update skills_config.json

* fix(cli): remove shebang to ensure consistent formatting across Dart SDKs

* refactor: address review feedback on recipe tests, shebang, and agent docs

* fix(cli): format shebang with blank line for Dart 3.13 formatter

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-08-18 16:19:16 -04:00
flutter-skills-sync-bot 50d1bc9f46 chore: auto-sync skills directory from dart-lang/skills (#215) 2026-08-04 12:46:02 -07:00
Reid-Agent 979a274cdf Remove unused dart_code_linter dependency and dead rules config (#213)
* Remove unused dart_code_linter dependency and dead config

* Update analysis_options.yaml

---------

Co-authored-by: Reid Baker <1063596+reidbaker@users.noreply.github.com>
2026-08-04 12:10:04 -04:00
Reid-Agent 7bddfa245c dart_skills_lint reduce enforced cognitive complexity (#212)
* Refactor internal return types and cognitive complexity

- Eliminate named record return types in _buildContext and _loadIgnores in favor of standard Future<T> single-value returns

- Audit and document _parse* methods in config_parser.dart and helper methods in test suites

- Extract top-level test helpers _createMockRelease and _runInstallScriptTest in install_script_test.dart to lower main function cognitive complexity score

- Update definition-of-done skill fail-threshold to 20

* Tighten CI cognitive complexity fail-threshold to 20 (#212)

* Automate CI threshold assertion and delegate DOD skill to CI workflow (#212)

* Move CI workflow consistency test out of recipe drift into dedicated test suite (#212)

* Remove unused normalizedSkillPath from _getIgnoresForSkill (#212)
2026-08-04 11:58:32 -04:00
Reid-Agent 135f796201 Migrate complexity linting to package:cognitive_complexity (#211)
* Migrate complexity linting to package:cognitive_complexity

* Fix cognitive_complexity target path in workflow

* Fix cognitive_complexity steps and coverage workflow in CI

* Pass repo-relative package paths to cognitive_complexity in workflow

* Fix zizmor audit findings for archived-uses and dependabot cooldown

* Trigger CI presubmit checks

* Update zizmor ignore comment position for archived-uses

* Inline zizmor ignore comment on uses line

* Address PR review: preserve dart_code_linter rules and revert dependabot/changelog edits

* Restore dart_code_linter comments in analysis_options.yaml

* Combine cognitive complexity checks into single multi-directory step

* Update definition-of-done SKILL.md metrics command to include test directory

* Add cognitive_complexity execution expectation to definition-of-done evals.json

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-08-03 17:30:11 -04:00
John Ryan b7e79966fe use actions/checkout version 7.0.1 2026-08-03 09:16:32 -07:00
John Ryan 80480c70a2 add resolution:workspace to dart_skills_lint 2026-07-31 13:23:35 -07:00
Reid-Agent 6b11ef54f2 Clean up dead files, internal design docs, and polish pre-publish documentation (#204)
* Clean up dead files, internal design docs, and polish pre-publish documentation

* fix(.agent.md): use correct bin/cli.dart entry point

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-31 14:40:24 -04:00
Reid-Agent 8aaa41d87b Genericize run-evals prompts and enforce lint cheating rubric (#196)
* Genericize run-evals prompts and enforce lint cheating rubric

* chore: explicitly suggest dart pub get in eval execution prompts

* chore: remove self referential code_quality_rubric.json from run-evals evals.json and clarify prompt template placeholder instructions

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-27 13:50:11 -04:00
Reid-Agent bf27b276b7 Fix run-evals workspace limitation warning (#195)
Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-24 16:50:48 -04:00
Reid-Agent c5cb871bac Test code quality rubric with static datasets (Meta-Evals) (#194)
* Add static dataset and meta-eval for code quality rubric

* Add positive test case and README docs for meta-evals

* Update evals.json schema: move repo_criteria to top and remove skill_name

* Address remaining PR 194 feedback: fix test-rubric lints

* Address PR review: resolve package directory dynamically in tests using Isolate.resolvePackageUri

* Add contributor-pr-description to prevent-skills-sh-publishing config

* Refactor test-rubric dummy skill into standalone code_quality_rubric_evals.json

* Update baseline execution prompt to avoid fixing code on grading tasks

* Add copyright headers to test fixtures

* Update with_skill execution prompt to avoid fixing code on grading tasks

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-23 23:26:06 -04:00
Reid-Agent 8bf0c0c6c5 Add evals for add-dart-lint-validation-rule (#193)
* Add evals for add-dart-lint-validation-rule

* Update SKILL.md instructions for README.md flags formatting

* Apply schema changes to add-dart-lint-validation-rule evals

* Fix trailing whitespace in add-dart-lint-validation-rule SKILL.md

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-23 15:56:33 -04:00
Reid-Agent 5ea30b4367 Add run-evals orchestration skill and evals for published skills (#189)
* Add run-evals skill and evals consistency tests

* Address review feedback and stub missing evals

* chore(evals): add unary integration mode and baseline comparison examples

* test: cleanly separate automated vs reasoning based validation evals utilizing absolute paths

* test: add structural consistency testing for universal evals rubrics

* test: deduplicate evals structural consistency checks and fix lints

* Address PR 189 feedback: Refactor evals framework schema and prompts

* Prevent evals from  modifying files in main working directory

* Update evals and SKILL.md to enforce strict DoD output format

* Simplify SKILL.md formatting instructions

* Relax chat output expectations in evals to prevent arbitrary failures

* Refactor unit tests to use Dart 3 switch expressions

* Remove redundant skill_name property from all evals.json files

* Move repo_criteria above evals array in all evals.json files for better readability

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-23 14:16:41 -04:00
Reid-Agent 0de9658880 feat: add contributor-pr-description skill (#190)
* feat: add contributor-pr-description skill

* fix: explicit configuration for new skill

* fix: add internal metadata to skill
2026-07-21 14:15:27 -04:00
Reid Baker 52a959374c Migrate tool/generator test to ConfigParser.loadConfig and clean up workflow (#186)
* Migrate generator test off deprecated resolvedRules onto resolvedRuleConfigs

* Remove duplicate validate_skills CLI workflow job

* Ensure lint_skills_test is path-resilient and asserts non-empty directoryConfigs

* Fix omit_local_variable_types lints in lint_skills_test.dart

* Simplify lint_skills_test to direct ConfigParser.loadConfig() call

* Update onboarding docs and skills to include directoryConfigs.isNotEmpty assertion when loading config

* Address PR discussion r3617291798: handle working directory when run from repo root

* Make working directory path resolution cross-platform for Windows, macOS, and Linux

* Format lint_skills_test.dart with dart format

---------

Co-authored-by: Reid-Agent <269567208+reidbaker-agent@users.noreply.github.com>
2026-07-20 16:52:02 -04:00
Reid-Agent b161bf2906 feat: add API boundary runner, relocate fixtures, and configure CI check (#183)
* feat: export RuleConfig and RuleConfigPatch in dart_skills_lint.dart

* docs: enforce diagnostic consumer migration step right inside check-downstream-consumers skill

* refactor: relocate examples, add API boundary runner and GHA validation config

* refactor: apply PR code review suggestions on API boundary path resolution and VM clean exit rules

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-17 11:23:23 -04:00
Reid-Agent 05e5a45fa4 feat: export RuleConfig and RuleConfigPatch in dart_skills_lint.dart (#182)
Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-16 17:15:18 -04:00
Reid-Agent 9756c4fb11 feat: support configurable rule-specific options and custom exclusions in path-does-not-exist (#176)
* Add evaluations setup and first eval definition for definition-of-done skill

* Fix skills linter tests by adding ignore for definition-of-done-workspace and restructuring yaml configuration

* feat: standardize rule severities and options API naming and structures

- Rename Validator parameter ruleOverrides to customRuleSeverities.
- Rename severity mapping fields and parameters to ruleSeverities.
- Rename option mapping fields and parameters to ruleOptions.
- Added validation checks for options keys and types in YAML parsing.
- Decoupled and exported ValidationResult model.

* feat: introduce ConfigurableSkillRule and CustomRuleOptions type-safe wrapper

- Extract options validation to ConfigurableSkillRule base constructor.
- Introduce CustomRuleOptions class wrapping options configuration maps.
- Refactor PathDoesNotExistRule to extend ConfigurableSkillRule.

* refactor: unify options validation and migrate parser to CustomRuleOptions

- Centralize options schema validation and formatting in CheckType.validateOptions.
- Remove redundant allowedOptions getter from ConfigurableSkillRule and its subclasses.
- Update ConfigParser, entrypoint, Validator, and ValidationSession to use CustomRuleOptions instead of raw maps.
- Add unit tests for resolving options and testing PathDoesNotExistRule with custom exclusions.

* Update .gitignore

* Update ignore.json

* feat: configure path-does-not-exist exclude pattern in dart_skills_lint.yaml

* refactor: introduce type-safe getters in CustomRuleOptions and rename to optionsSchema

- Add type-safe getters (getString, getInt, getBool, getStringList) to CustomRuleOptions.
- Update PathDoesNotExistRule to retrieve options using the new type-safe getters.
- Rename allowedOptions to optionsSchema inside CheckType to distinguish the schema definition from configuration values.
- Clean up all references across EntryPoint, Registry, and tests to match optionsSchema.

* Refactor: Unify options and severity configs under RuleConfig model

* Refactor dart_skills_lint configuration options architecture

- Define RuleOptionType enum and refactor schema parsing
- Migrate PathDoesNotExistRule to use RegExp parameters directly
- Enforce immutability on CustomRuleOptions
- Restrict internal API exports
- Update test suite to reflect configuration constraints and lint formatting

* Refactor rule options to rule parameters

* fix: address code review feedback on rule configuration refactor

* fix: restore backward compatibility for ValidationSession

* test: verify deprecated API passes successfully

* Implement full backward compatibility for ruleConfigs, remove ValidationResult export, and add TODOs for deprecation tracking (fixes downstream consumers)

* Update dart-skills-lint-integration skill to use resolvedRuleConfigs instead of deprecated resolvedRules

* fix: address PR #176 code review comments and deprecations audit

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
Co-authored-by: Reid Baker <1063596+reidbaker@users.noreply.github.com>
2026-07-16 14:58:32 -04:00
Reid-Agent 5854ede2cc feat: author check-downstream-consumers skill and known consumers resource (#180)
Co-authored-by: Reid Baker <reidbaker@google.com>
2026-07-16 14:17:52 -04:00
Keerti Parthasarathy fbb6bbcc0d Add configutation files for Claude Code plugin definition (#172)
* test: add sync workflow and dart tool script

* chore: auto-sync skills directory from dart-lang/skills

* Update workflow to support trigger from dart-lang/skills

* Update repo name

* Applied suggestions

* Address comments

---------

Co-authored-by: keertip <2192312+keertip@users.noreply.github.com>
2026-07-14 10:04:40 -07:00
Reid-Agent 7b3fb9e33a Feature/evals dod (#175)
* Add evaluations setup and first eval definition for definition-of-done skill

* Fix skills linter tests by adding ignore for definition-of-done-workspace and restructuring yaml configuration

* Update tool/dart_skills_lint/.agents/skills/definition-of-done/evals/evals.json

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Update .gitignore

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
Co-authored-by: Reid Baker <1063596+reidbaker@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-07-13 20:06:46 -04:00
John Ryan fffdf3c4c6 Rename to flutter/agent-plugins 2026-07-10 14:39:34 -07:00
Reid-Agent c3a3765396 chore(release): prepare for dart_skills_lint for 0.4.0 (#168)
* chore(release): prepare for 0.4.0

* docs: expand changelog entry for issue #166 based on PR feedback

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-06-18 17:57:40 -04:00
Reid-Agent 8f85e82be6 Allow individual skills to be specified in dart_skills_lint.yaml (#167)
* feat: Add support for individual_skills configuration key

* docs: tweak comment wording for fallback logic

* docs: add individual_skills changelog entry

* chore: add changelog requirement to definition of done

* fix: address PR review comments for config parsing and fallback

* test: add regression tests for config parsing and fallback fixes

* chore: fix dart analyzer omit_obvious_local_variable_types lint

* Fix CLI target isolation and remove config overlap protection

* Fix baseline generation file location for individual skills

* Add integration test for rule overriding behavior

* Fix presubmits: remove unused import and fix formatting

* Update reidbaker-agent config with hygiene instructions

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-06-18 11:30:40 -04:00
Reid Baker 12de4eb624 dart_skills_lint v0.4 prep: native binary preview track (#158)
* Add v0.4.0-dev.1 preview: native binary distribution

- New tag-triggered release workflow builds dart_skills_lint as a
  standalone native binary for macOS arm64/x64 and Linux x64/arm64
  via `dart compile exe`, packages each as a tarball with SHA256,
  and cuts a GitHub Release with release notes extracted from
  CHANGELOG.md.
- New install.sh detects OS/arch, downloads the matching tarball,
  verifies SHA256, and installs to INSTALL_DIR (default /usr/local/bin
  with sudo fallback). REPO/VERSION/INSTALL_DIR are env-configurable
  so the script survives the impending dart_skills_lint repo move
  with a single default-value edit.
- Pub.dev install paths (`dart pub global activate` and dev_dependency)
  are unchanged; binaries are a parallel channel.
- macOS binaries in this preview are unsigned. Homebrew formula is
  deferred until the new home repo is settled to avoid forcing
  early adopters through a re-tap on migration.

* Bump GitHub Actions to Node 24-compatible versions

- actions/upload-artifact: v4 → v7 (was the Node 20 deprecation
  warning source from the first fork test)
- actions/download-artifact: v4 → v8
- softprops/action-gh-release: v2 → v3

All three were on Node 20, which GitHub forces to Node 24 on
2026-06-16. Each matrix job uploads with a unique artifact
name, so v5+'s duplicate-name restriction is non-issue.
download-artifact v8's new error-on-hash-mismatch default is
a security upgrade.

* Update README install section for v0.4.0-dev.1 binary preview

Lead with install.sh as the recommended path; add a direct-curl
variant for environments that don't pipe scripts to bash. Keep
the pub.dev paths (dev_dependency and `dart pub global activate`)
unchanged under a "Dart developers" section.

Documents the macOS Gatekeeper workaround for unsigned preview
binaries, a brief note that Homebrew is coming after the imminent
repo migration, and the pinning syntax to opt into the preview
track. Bumps the stable caret range example from ^0.2.0 to ^0.3.0.

* Address Gemini review on install.sh

- install.sh:118 (high): print the macOS Gatekeeper note BEFORE the
  --help launch check so users see the xattr workaround even when
  Gatekeeper blocks the binary. On macOS, downgrade the --help
  failure from a hard err to an informational message since the
  install itself succeeded; the launch will work once quarantine
  is cleared. Non-macOS still hard-errs on launch failure.
- install.sh:80 (medium): strip leading '*' from SHA256SUMS field 2
  before comparison so binary-mode hash files (sha256sum -b output)
  work as well as text-mode.

* Address self-review on PR #158

- install.sh: collapse three hand-rolled "Supported: ..." messages
  behind one SUPPORTED_TARGETS constant, so the error text and the
  final platform check share a source of truth. Error text now lists
  normalized targets (macos-arm64, macos-x64, linux-x64, linux-arm64)
  instead of raw uname variants.
- CHANGELOG.md: shrink the 0.4.0-dev.1 entry to match the 0.3.1
  style — flat user-facing bullets, no internal workflow detail or
  Homebrew roadmap.
- README.md: reorder the Installation section so the pub.dev path
  (existing Dart audience) comes first, followed by install.sh and
  the direct-download path for the no-Dart preview audience.

* Refactor install.sh tests to be robust, add Linux tests and missing error coverage

* Fix custom linter warnings and format test file

* Fix omit_obvious_local_variable_types analyzer warning in test

* Pin softprops/action-gh-release to commit SHA to resolve review feedback

* Pin VeryGoodOpenSource/very_good_coverage to commit SHA

* Add tag mapping comments to pinned action commit SHAs
2026-06-17 14:27:27 -04:00
Reid-Agent 384da05b53 Enforce BSD copyright headers in dart_skills_lint Dart files (#161)
* Add copyright header enforcement test and fix missing headers

Adds test/copyright_header_test.dart which scans every .dart file
in bin/, lib/, and test/ and fails if any is missing the BSD
copyright block. Bacfills the 15 files that were missing it, closing #160.

* Address review: Windows line endings, named constants, formatter parity

- Normalize \r\n -> \n in _hasCopyrightHeader so the test passes on
  Windows checkouts with core.autocrlf enabled.
- Extract the canonical copyright text into a _copyrightHeader constant
  and use it in the error message (with 2026 instead of <year> so the
  block is copy-pasteable).
- Convert source directories to a const Set<String> with a doc comment
  naming the path base.
- Revert bin/cli.dart's shebang/copyright spacing to match main; the
  blank line came from a dev-channel formatter and is rejected by CI's
  stable formatter (and by pana).

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
2026-06-12 15:55:50 -04:00
John Ryan d288caa079 Add missing copyright headers 2026-06-12 12:09:09 -07:00
Reid Baker 39e599cc78 Fix linter warnings in tracked_skills_publishing_test.dart 2026-06-10 11:29:43 -04:00
Reid Baker 2365f819a3 Refactor tracked_skills_publishing_test to use ValidationSession 2026-06-10 11:25:45 -04:00
Reid Baker 8b41040621 Apply review feedback: use parent .gitignore, make test more robust 2026-06-10 11:20:20 -04:00
Reid Baker 80e9992e58 Fix #157: Invert .gitignore logic and add configuration sync test 2026-06-10 11:12:12 -04:00
Reid Baker 44dfbab371 Address code review: ignore malformed YAML, add test, and update RULES.md 2026-06-09 19:01:11 -04:00
Reid Baker 6cd2179193 Address code review feedback: add copyright headers and handle string whitespace 2026-06-09 18:45:28 -04:00
Reid Baker f002b36410 Improve documentation and errors that show when in a bad state 2026-06-09 18:40:33 -04:00
Reid Baker 9f1babb47c Migrate standard agent skills to npx remote installs 2026-06-09 18:20:46 -04:00
Reid Baker 8b017ffe5b Mark specific development tools as internal and add them to linter enforcement config 2026-06-09 18:08:33 -04:00
Reid Baker 9aef240e46 Create prevent-skills-sh-publishing rule, enable it, add tests and documentation 2026-06-09 18:04:27 -04:00
Reid Baker 3f78539217 Mark development and fixture skills as internal to exclude them from skills.sh 2026-06-09 17:47:53 -04:00
Reid Baker c1542ccd77 Remove dart_hooks directory and references (#155) 2026-06-04 17:12:35 -04:00
Reid Baker ef41e12ae6 Fix dart_hooks.yaml example keys so hooks are actually enabled (#150) (#151)
* Fix dart_hooks.yaml example keys so hooks are actually enabled (#150)

The example dart_hooks.yaml files committed in #148 used the script
filenames (agent_dart_format.dart / agent_dart_analyze.dart) as keys.
BaseHook.run() gates on each hook's configKey, which is the class name
(DartFormatHook / DartAnalyzeHook), so copying these files left both
hooks silently disabled, contradicting the README.

Update all four committed dart_hooks.yaml files to the class-name keys
the code reads and the README documents.

Also improve the diagnostic: when the expected key is missing, the log
now lists the keys that were found and suggests the correct one, so a
typo'd or legacy key no longer disables a hook with an opaque message.

* Update tool/dart_hooks/lib/src/base_hook.dart

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Remove redundant cast that failed dart analyze --fatal-infos

yaml is already promoted to Map by the enclosing `if (yaml is Map)`, so
`(yaml as Map)` is an unnecessary_cast that `dart analyze --fatal-infos`
treats as fatal. Drop the cast.

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-05-25 18:08:28 -04:00
Reid Baker 23f7d6aac9 Configure format and analyze hooks via YAML (#148)
* Support YAML configuration for format and analyze hooks

* Configure format and analyze hooks via YAML and address code review findings

* Update README with YAML configuration details

* Refactor BaseHook readFile to use asynchronous FutureOr and restore Git/Status exit codes to 0

* Normalize hardcoded test paths for Windows compatibility

* Fix Windows compatibility for agent_dart_analyze_integration_test.dart endsWith checks

* Normalize paths returned by getModifiedFilesInternal to fix mixed separators on Windows

* feat(hooks): configure analyze and format hooks via YAML config keys

* doc(hooks): bump version to 0.0.2 and update README and CHANGELOG

* doc(hooks): highlight yaml configuration requirement in CHANGELOG

* doc(hooks): correct version to 0.1.0 for breaking change

* doc(hooks): add debugging activation guide to README

* doc(hooks): remove tense words (now) from CHANGELOG

* doc(hooks): refine YAML configuration key description in CHANGELOG
2026-05-25 16:41:35 -04:00
Reid Baker fa3c563d31 lint: add --config CLI argument for custom config path (#149)
* feat(lint): add --config CLI argument for custom config path

* test(lint): verify --ignore-config takes precedence over --config
2026-05-25 15:59:39 -04:00
Reid Baker 0ecf358b05 dart_skills_lint v0.3 prep: paperwork, diagnostics, recipes, RULES.md (#143)
Better lint diagnostics
New ci integrations 
Better test coverage of documentation. 
Pana integration
2026-05-22 14:31:44 -04:00
Reid Baker 5519cc09e1 Fix flaky Windows dart analyze; enforce dart_code_linter on test/ (#145)
* Fix flaky Windows dart analyze; enforce dart_code_linter on test/

Drop the dart_code_linter analyzer `plugin` registration from
analysis_options.yaml. When registered, `dart analyze` loaded the plugin
in a separate isolate that re-emitted the `dart_code_linter:` rules as
diagnostics over the plugin protocol for all non-excluded files. Delivery
of those diagnostics to the CLI is asynchronous and racy, so on slower
Windows CI runners they intermittently appeared and `--fatal-infos` turned
them fatal -- a flaky, platform-specific failure (#144). `dart analyze` now
enforces only core lints, deterministically across platforms.

The dedicated `dart run dart_code_linter:metrics` step is the deterministic
enforcement path for those rules; extend it to cover `test` as well as
`lib` so the test suite gets real, cross-platform coverage instead of the
accidental flaky version.

Fix the test-file violations this surfaces:
- avoid-late-keyword: replace `late Directory tempDir` fixtures with a
  shared createTempDir() helper that registers cleanup via addTearDown,
  removing duplicated tearDown blocks.
- avoid-dynamic: `dynamic noSuchMethod` -> `Object?`.
- avoid-redundant-async: drop the redundant async in a setUp.

Exclude prefer-match-file-name for test/**: test files must be named
`*_test.dart` and commonly hold several small fixture classes, so they
cannot match the rule's "file name == first class name" convention.

* Exclude avoid-late-keyword for tests instead of placeholder workaround

Address review feedback: rather than initializing tempDir fixtures to a
placeholder to satisfy avoid-late-keyword, exclude the rule for test/**
(as already done for prefer-match-file-name). `late` for fields assigned
in setUp is the idiomatic Dart test pattern. Reverts the createTempDir
helper and placeholder initializations; fixtures are plain `late` again.

The genuine, non-late fixes are kept: avoid-dynamic (Object? noSuchMethod)
and avoid-redundant-async (drop async from a sync setUp).

* Apply suggestion from @reidbaker
2026-05-22 09:55:52 -04:00
Reid Baker ffe7a5d6b2 Add CI line-coverage gate for dart_skills_lint (#142)
* Add CI line-coverage gate for dart_skills_lint

Collect coverage with `dart test --coverage`, convert to LCOV via the
already-transitive package:coverage, and enforce a minimum threshold in
CI with the VeryGoodOpenSource/very_good_coverage action (min 73%,
excluding *.g.dart). Adds contributor docs and a CHANGELOG entry. No new
pub dependencies and no custom coverage parsing to maintain.

* Document --ignore-files to exclude *.g.dart from local coverage
2026-05-21 21:15:26 -04:00
Reid Baker bfc028b034 Add skills to claude support and ignore local claude config 2026-05-21 17:09:26 -04:00
Reid Baker f6996f5ceb Remove workspace file 2026-05-15 10:07:05 -04:00
Reid Baker 7048cb366d Merge pull request #138 from reidbaker/add-dart-skills-lint-integration-skill-2026-05-14
Add dart-skills-lint-integration skill to standardize consumer configurations
2026-05-15 09:39:46 -04:00