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/.
* 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>
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.
* 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)
* 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>
* 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>
* 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>