Commit Graph

417 Commits

Author SHA1 Message Date
Jaime Wren 2849515a00 fix: add missing metadata.last_modified to dart-write-documentation skill
Add required `metadata` block with `last_modified` to dart-write-documentation.
When this skill was synced from dart-lang/skills in #224, it lacked this field,
causing `LastModifiedRule` and `test/lint_skills_test.dart` to fail CI on PRs
touching skills/.
2026-09-01 10:01:43 -07:00
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
Keerti Parthasarathy 1e5696a2e9 Update README install instructions (#223)
* Update README

* Update README.md

* Apply suggestions
2026-08-20 11:33:03 -07: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
Jithin K Jose 66b6d25a38 Formatting Fix for the Codex Plugin Title (#217)
Removed the unnecessary `\n` .
2026-08-10 14:47:55 -07:00
Jacob MacDonald 141bccd9a3 add a rule file encouraging proactive use of hot reload (#210)
Part of https://github.com/dart-lang/ai/issues/498

It is not clear to me exactly which all agents support rules, but AGY does, and this rule has only been tested in AGY. Cursor supports it but seems to want a slightly different format, (`.mdc`).

Should we create separate directories for some of the other agents? I think cursor does support pointing to any directory for the rules in its plugin configuration.
2026-08-05 09:52:17 -07:00
flutter-skills-sync-bot 50d1bc9f46 chore: auto-sync skills directory from dart-lang/skills (#215) 2026-08-04 12:46:02 -07:00
John Ryan df47f9e470 Merge pull request #214 from flutter/fix-sync-bot-output
Fix sync bot output
2026-08-04 11:31:28 -07:00
John Ryan 8d2cd605fe Fix sync bot output
This sets the changes_detected variable, ensures that the exit code is
set, and that output are printed to $GITHUB_OUTPUT to help with
debugging.
2026-08-04 09:57:00 -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 bcf08a80f5 Merge pull request #209 from flutter/fix-coverage
use very_good_workflows coverage_excludes
2026-08-03 12:26:56 -07:00
John Ryan b191b5da0a use very_good_workflows coverage_excludes
https://workflows.vgv.dev/docs/workflows/dart_package#coverage_excludes
2026-08-03 10:17:44 -07:00
John Ryan 70aa02d9e0 Merge pull request #208 from flutter/dependabot/github_actions/github-actions-ba3101af4b
Bump the github-actions group across 1 directory with 2 updates
2026-08-03 10:08:07 -07:00
dependabot[bot] 6195d6f060 Bump the github-actions group across 1 directory with 2 updates
Bumps the github-actions group with 2 updates in the / directory: [actions/github-script](https://github.com/actions/github-script) and [VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml](https://github.com/verygoodopensource/very_good_workflows).


Updates `actions/github-script` from 7.1.0 to 9.0.0
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/f28e40c7f34bde8b3046d885e986cb6290c5673b...3a2844b7e9c422d3c10d287c895573f7108da1b3)

Updates `VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml` from 86e2d68bb1e27b2518e4a2277205d23d21cb413c to 75f342c5d0b8c8adde3a2b7ea101e7e47897d1fc
- [Release notes](https://github.com/verygoodopensource/very_good_workflows/releases)
- [Changelog](https://github.com/VeryGoodOpenSource/very_good_workflows/blob/main/CHANGELOG.md)
- [Commits](https://github.com/verygoodopensource/very_good_workflows/compare/86e2d68bb1e27b2518e4a2277205d23d21cb413c...75f342c5d0b8c8adde3a2b7ea101e7e47897d1fc)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml
  dependency-version: 75f342c5d0b8c8adde3a2b7ea101e7e47897d1fc
  dependency-type: direct:production
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 16:54:46 +00:00
John Ryan 3bcc44ffc0 Merge pull request #206 from flutter/configure-sync-bot
Configure bot to sync skills and fix zizmor warnings
2026-08-03 09:51:25 -07:00
John Ryan b7e79966fe use actions/checkout version 7.0.1 2026-08-03 09:16:32 -07:00
John Ryan 922cba5e67 Add explanation for zizmore: ignore comments 2026-07-31 13:52:12 -07:00
John Ryan b700630091 Fix unpinned-uses error by stripping leading 'v' from 40-character commit SHA 2026-07-31 13:48:30 -07:00
John Ryan d8f8dffdad Fix coverage tool 2026-07-31 13:46:25 -07:00
John Ryan bb86ea49db use full commit SHA 2026-07-31 13:44:39 -07:00
John Ryan f911d210b5 Fix zizmor unpinned-uses by pinning very_good_coverage to hash with inline ignore comment 2026-07-31 13:41:58 -07:00
John Ryan f67e39d36b update hash 2026-07-31 13:40:03 -07:00
John Ryan 89a5f753cc Fix zizmor warning 2026-07-31 13:37:31 -07:00
John Ryan 09973e9f3e use very_good_workflows to avoid zizmor warning 2026-07-31 13:34:09 -07:00
John Ryan b630da4120 Fix / ignore zizmor warnings 2026-07-31 13:33:08 -07:00
John Ryan 80480c70a2 add resolution:workspace to dart_skills_lint 2026-07-31 13:23:35 -07:00
John Ryan 1b81a4f70e Fix zizmor warnings 2026-07-31 13:18:09 -07:00
John Ryan 185b954b36 Pin GitHub actions to hash 2026-07-31 13:02:12 -07:00
John Ryan 119d735204 Configure bot to sync skills
This configures the GitHub user to flutter-skills-sync-bot. The PAT for this account is stored as the SYNC_PAT secret in settings.

Fixes #197
2026-07-31 12:44:10 -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
John Ryan 036322d21d Merge pull request #192 from keertip/add-block
Add a workflow to block external PR's against dart skills
2026-07-27 10:29:18 -07: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
Keerti Parthasarathy 9e7239c433 Add a workflow to block external PR's against dart skills 2026-07-22 06:06:43 -07: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
Kenzie Davisson 6fe4e74e01 Merge pull request #184 from flutter/dependabot/github_actions/github-actions-b9d3d7f498
Bump the github-actions group across 1 directory with 2 updates
2026-07-21 16:59:34 +00:00
Keerti Parthasarathy 510d43e74e Add config for Cursor plugin (#178)
* Add config for Cursor plugin

* Apply suggestion from @gemini-code-assist[bot]

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

* Apply suggestion from @gemini-code-assist[bot]

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

* Update plugin.json

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-07-20 22:19:12 -07:00
dependabot[bot] 7da45757d4 Bump the github-actions group across 1 directory with 2 updates
Bumps the github-actions group with 2 updates in the / directory: [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).


Updates `actions/checkout` from 4 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v7)

Updates `peter-evans/create-pull-request` from 6 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: peter-evans/create-pull-request
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-20 20:54:36 +00: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
Keerti Parthasarathy a037a4a343 Add Codex plugin (#177)
* Add Codex plugin

* Update README.md

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

* fix nit

* remove default prompt field

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-07-17 09:30:35 -07: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 acb658a5d4 feat: add specialized review, documentation, and CLI skills plus known adopters resource (#181)
* feat: add specialized review, documentation, and CLI skills plus known adopters resource

* Delete tool/dart_skills_lint/.agents/skills/dart-skills-lint-integration/resources/known_adopters.md

---------

Co-authored-by: Reid Baker <reidbaker@google.com>
Co-authored-by: Reid Baker <1063596+reidbaker@users.noreply.github.com>
2026-07-16 15:41:51 -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