Skip to content

Add third_party/ directory to contain sample skills and symlink those to camera_android_camerax#11895

Closed
camsim99 wants to merge 5 commits into
flutter:mainfrom
camsim99:third_party_skills
Closed

Add third_party/ directory to contain sample skills and symlink those to camera_android_camerax#11895
camsim99 wants to merge 5 commits into
flutter:mainfrom
camsim99:third_party_skills

Conversation

@camsim99

@camsim99 camsim99 commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Creates a third_party/skills directory in the repository to add third party open source skills for package development. In the third_party/skills/.agents/skills directory, I added the following skills that are planned for use in go/flutter-project-one-shot-torch and symlinks them to the camera_android_camerax package for development purposes:

Flutter/Dart-authored skills

3P-authored skills

Pre-Review Checklist

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

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

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

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jun 12, 2026
@camsim99 camsim99 marked this pull request as ready for review June 15, 2026 15:52
@camsim99 camsim99 requested a review from reidbaker June 15, 2026 15:53

@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 several skill documentation files under packages/third_party/skills/ and adds corresponding symlinks under packages/camera/camera_android_camerax/skills/. The added files cover topics such as Android CLI usage, Dart unit testing, coverage collection, mock generation, static analysis, Flutter integration testing, and code review reception. Review feedback indicates that almost all of the newly added markdown files are truncated at the end, resulting in incomplete sentences, headings, and code blocks that need to be completed.

## Screenshot
`android screen capture -o <file path>` saves a PNG of the current device screen to `<file path>`

Use `screen capture` as a secondary me

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.

medium

The sentence is truncated at the end of the file. It should be completed to describe the secondary mechanism or method.

Suggested change
Use `screen capture` as a secondary me
Use screen capture as a secondary method.

```<action>Search for soda and add the first result to the cart</action>```
This should be evaluated as:
```
<action>Search for soda</a

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.

medium

The XML action block and the markdown code block are truncated at the end of the file. Please complete the XML tag and close the code block.

flutter pub add dev:coverage
```

### 2. Collect Coverag

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.

medium

The heading is truncated at the end of the file. It should be completed to '### 2. Collect Coverage'.

Suggested change
### 2. Collect Coverag
### 2. Collect Coverage


- **Stubbing:** Configure mock behavior before interacting with the system under test.
- Use `when(mock.method()).thenReturn(value)` for synchronous methods.
- **CRITICAL:** Always use `thenAnswer((_) async => value)` for methods

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.

medium

The sentence is truncated at the end of the file. Please complete the explanation for when to use thenAnswer (e.g., for asynchronous methods returning a Future).


When a diagnostic (lint or warning) yields a false positive or applies to generated code, suppress it explicitly.

- **File-level Exclusion:** Use the `analyzer: exclude:` node in `analysis_options.yaml` to exclude enti

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.

medium

The sentence is truncated at the end of the file. It should be completed to explain how to exclude entire files or directories.

- Create a dedicated `integration_test/` directory at the project root.
- Name all test files using the `<name>_test.dart` convention.
- Initialize the binding by calling `IntegrationTestWidgetsFlutterBinding.ensureInitialized();` at the start of `main()`.
- Load the application UI using `await tester.pumpWidget(MyApp());

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.

medium

The sentence is truncated at the end of the file. It is missing the closing backtick and potentially more instructions.

description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
---

Interview me relentlessly about every aspect of this plan until we reach a shared

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.

medium

The sentence is truncated at the end of the file. It should be completed (e.g., 'until we reach a shared understanding.').

Suggested change
Interview me relentlessly about every aspect of this plan until we reach a shared
Interview me relentlessly about every aspect of this plan until we reach a shared understanding.

grep codebase for actual usage

IF unused: "This endpoint isn't called. Remove it (YAGNI)?"
IF used: Then

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.

medium

The code block and the file content are truncated at the end of the file. Please complete the conditional logic and close the code block.

@github-actions github-actions Bot removed the CICD Run CI/CD label Jun 15, 2026
@camsim99 camsim99 added the CICD Run CI/CD label Jun 15, 2026
@camsim99 camsim99 requested a review from stuartmorgan-g June 15, 2026 18:01
@stuartmorgan-g

Copy link
Copy Markdown
Collaborator

Hm, usually third-party code needs a LICENSE and METADATA file for each source. There's currently no code here, so I'm not sure how this works, especially since presumably we need a structure that will work for cases where there are scripts associated with a skill.

Please email third-party-help@ and point them to this PR to ask how this should be structured.

@flutter-dashboard

Copy link
Copy Markdown

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@reidbaker reidbaker closed this Jun 17, 2026
auto-submit Bot pushed a commit that referenced this pull request Jun 22, 2026
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 `EnforceTrackedSkillsPreventPublishingRule` in tests to enforce that tracked skills are strictly configured with the `prevent-skills-sh-publishing` rule in `dart_skills_lint.yaml` to prevent accidental publishing.
Tooling changes: 

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

[^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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants