Skip to content

[camera_android_camerax] Setup agent skills camerax#11930

Open
reidbaker wants to merge 25 commits into
mainfrom
setup-agent-skills-camerax
Open

[camera_android_camerax] Setup agent skills camerax#11930
reidbaker wants to merge 25 commits into
mainfrom
setup-agent-skills-camerax

Conversation

@reidbaker

@reidbaker reidbaker commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Setup the new agent skills architecture for camera_android_camerax:
Taking over from #11895

  • Remotely managed Skills: Third-party are in a top level directory pr remote repo so that licenses can be included. Then they are symlinked into packages that want them.
  • Published Skills: Added a new empty directory for skills that are for users of camera_android_camerax.
  • Contributor Skills: Added a new directory for contributor skills and authored an internal `check-readiness` skill configured to enforce repository hygiene.
  • Linter & Safety: Pinned `dart_skills_lint` to the newly supported `individual_skills` hash. Added `tracked_skills_publishing_test.dart` to enforce that internal tracked skills cannot be accidentally published.

Tooling changes:

  • Ignore dart pub --dry-run errors (in publish_check) if the folders are in .pubignore

Future changes:

  • migrate bash script to dart
  • make analyze run on .agents/skills/* directories
  • update the tooling to not need changelog and versioning if you modify .agents/skills

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Footnotes

  1. 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

- 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
@reidbaker reidbaker added the override: no changelog needed Override the check requiring CHANGELOG updates for most changes label Jun 17, 2026
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 17, 2026
@reidbaker

Copy link
Copy Markdown
Contributor Author

No changelog needed because none of the changes are user facing only contributor facing.

@reidbaker reidbaker marked this pull request as draft June 17, 2026 22:09

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread third_party/anthropics-skills/LICENSE Outdated
Comment thread packages/camera/camera_android_camerax/test/tracked_skills_publishing_test.dart Outdated
Comment thread packages/camera/camera_android_camerax/test/tracked_skills_publishing_test.dart Outdated
@camsim99 camsim99 self-requested a review June 17, 2026 22:53
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 18, 2026

@camsim99 camsim99 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some high level questions!

Comment thread third_party/anthropics-skills/LICENSE Outdated
Comment thread third_party/README.md Outdated
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 18, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 18, 2026
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 18, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 18, 2026
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@reidbaker reidbaker marked this pull request as ready for review June 18, 2026 23:50
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 18, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces local and third-party AI agent skills to the camera_android_camerax package, including a readiness check script, custom lint rules, and validation tests. Feedback on the changes suggests improving robustness by replacing an unsafe cast with a safe type check, wrapping a process execution in a try-catch block to handle potential exceptions, and verifying the presence of git and a git repository in the shell script before running git status.

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 18, 2026
@reidbaker reidbaker force-pushed the setup-agent-skills-camerax branch from a272087 to acc34a5 Compare June 19, 2026 00:00
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 19, 2026
@reidbaker reidbaker added the CICD Run CI/CD label Jun 19, 2026
@reidbaker

Copy link
Copy Markdown
Contributor Author

/gemini-code-review

@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 19, 2026
@reidbaker reidbaker added CICD Run CI/CD override: no versioning needed Override the check requiring version bumps for most changes labels Jun 19, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 19, 2026
return true;
}

if (!getBoolArg(_allowPrereleaseFlag)) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this code was not deleted only moved.

@reidbaker reidbaker added the CICD Run CI/CD label Jun 19, 2026
@reidbaker reidbaker requested a review from camsim99 June 19, 2026 19:30

@camsim99 camsim99 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM just had some questions about EnforceTrackedSkillsInternalRule for my own understanding! Sorry for the delayed review!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also why is it in the test/ directory? Is that standard for custom skill lints?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@reidbaker reidbaker requested a review from stuartmorgan-g June 22, 2026 16:04
@@ -0,0 +1,26 @@
Copyright 2026 The Flutter Authors. All rights reserved.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is Flutter code in a third_party directory?

Comment thread third_party/README.md
@@ -0,0 +1,23 @@
# Third-Party Agent Skills

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

@reidbaker

Copy link
Copy Markdown
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD override: no changelog needed Override the check requiring CHANGELOG updates for most changes override: no versioning needed Override the check requiring version bumps for most changes p: camera

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants