[camera_android_camerax] Setup agent skills camerax#11930
Conversation
- Add dart_skills_lint dependency and configuration - Create .agents/skills and skills directories with documentation - Set up isolated third_party skills installation for remote skills - Symlink remote skills into .agents/skills - Add validate_skills_test.dart for CI integration
|
No changelog needed because none of the changes are user facing only contributor facing. |
There was a problem hiding this comment.
Code Review
This pull request adds local and third-party AI agent skills to the camera_android_camerax package, including configuration files, tests, and documentation for managing them. Feedback on these changes identifies a missing verification script (check.sh) referenced in the readiness skill, an invalid license file containing a 404 error for the anthropics-skills dependency, a violation of Dart API boundaries due to importing internal src/ files in a test, and fragile path parsing in tracked_skills_publishing_test.dart that could fail in monorepo CI environments.
camsim99
left a comment
There was a problem hiding this comment.
Left some high level questions!
There was a problem hiding this comment.
@camsim99 I have some work happening to turn this into dart code but if you are ok with it I would like to land that change independently.
| return true; | ||
| } | ||
|
|
||
| if (!getBoolArg(_allowPrereleaseFlag)) { |
There was a problem hiding this comment.
this code was not deleted only moved.
camsim99
left a comment
There was a problem hiding this comment.
LGTM just had some questions about EnforceTrackedSkillsInternalRule for my own understanding! Sorry for the delayed review!
There was a problem hiding this comment.
Why does this live within the camera_android_camerax plugin? Assuming this might be something we would want available to all plugins but we are just starting with it here?
There was a problem hiding this comment.
Also why is it in the test/ directory? Is that standard for custom skill lints?
There was a problem hiding this comment.
Why does this live within the camera_android_camerax plugin? Assuming this might be something we would want available to all plugins but we are just starting with it here?
There is already a lint that ensures that skills that have the lint enabled are not published. This is more of a meta test that makes sure that for this package (later repo) that we have configured the skills correctly.
Also why is it in the test/ directory? Is that standard for custom skill lints?
I am still working on the standard for where custom lints should live more broadly in dart packages. For this repo the lint will likely move to the repo tooling directory the first time we have another package adopt skills and want to enforce this configuration. You can think of custom lints kind of like test utils classes.
| @@ -0,0 +1,26 @@ | |||
| Copyright 2026 The Flutter Authors. All rights reserved. | |||
There was a problem hiding this comment.
Why is Flutter code in a third_party directory?
There was a problem hiding this comment.
Open to feedback on this but this is where skills that are managed by npx skills are located. That includes flutter skills because I am trying to keep the patterns the same. There will also be dart licensed skills in third_party.
| @@ -0,0 +1,23 @@ | |||
| # Third-Party Agent Skills | |||
There was a problem hiding this comment.
Can we make a third_party/skills/ that contains this and all the skills, instead of making the individual skills peers of third_party/packages/, and having the README for all of third-party sound like it's about skills?
There was a problem hiding this comment.
done I went with skill-repos because the string "skills" tends to be a magnet for crawlers.
|
I talked to @stuartmorgan-g out of band and we have a better way of determining what skills should be configured with dont publish check. I am going to resolve the paths for all the skills and filter out third_party. Holding landing this pr for that change. |
|
autosubmit label was removed for flutter/packages/11930, because - The status or check suite Windows_x64 dart_unit_tests_shard_1 master has failed. Please fix the issues identified (or deflake) before re-applying this label. |
…r#188383) flutter/packages@cd5194a...7d84a69 2026-06-22 engine-flutter-autoroll@skia.org Roll Flutter (stable) from c9a6c48 to e1fd963 (6 revisions) (flutter/packages#11958) 2026-06-22 1063596+reidbaker@users.noreply.github.com [camera_android_camerax] Setup agent skills camerax (flutter/packages#11930) 2026-06-22 engine-flutter-autoroll@skia.org Roll Flutter from 707e50f to e228771 (7 revisions) (flutter/packages#11957) 2026-06-22 49699333+dependabot[bot]@users.noreply.github.com Bump actions/checkout from 6.0.2 to 7.0.0 in the all-github-actions group (flutter/packages#11953) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Setup the new agent skills architecture for camera_android_camerax:
Taking over from #11895
check-readinessskill configured to enforce repository hygiene.dart_skills_lintto the newly supportedindividual_skillshash. AddedEnforceTrackedSkillsPreventPublishingRulein tests to enforce that tracked skills are strictly configured with theprevent-skills-sh-publishingrule indart_skills_lint.yamlto prevent accidental publishing.Tooling changes:
Future changes:
Pre-Review Checklist
[shared_preferences]///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2