feat(testing): add mobile integration test skill - #78
Merged
Conversation
Centralize the Mobile integration-test workflow and align the shared testing-layer guidance so generated skills remain the single source of truth. Co-authored-by: Cursor <cursoragent@cursor.com>
10 tasks
Extend the CV-default guidance from #70 across coding, PR-workflow, and perps review skills so app-to-controller flows are steered to the integration layer under the best-fit-layer model. Co-authored-by: Cursor <cursoragent@cursor.com>
racitores
marked this pull request as ready for review
July 27, 2026 16:02
javiergarciavera
approved these changes
Jul 27, 2026
pull Bot
pushed a commit
to firas9941/metamask-mobile
that referenced
this pull request
Jul 28, 2026
…3864) <!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until this PR meets the canonical Definition of Ready For Review in `docs/readme/ready-for-review.md`. In short: the template must be materially complete (not just section titles present), all status checks must be currently passing, and the only expected follow-up commits must be reviewer-driven. --> ## **Description** <!-- mms-check: type=text required=true --> Removes the hand-authored `.agents/skills/integration-test` copy introduced by MetaMask#29749. Agent skills are centrally maintained and generated from [MetaMask/skills#78](MetaMask/skills#78), matching the existing `component-view-test` distribution model. Framework documentation now links to the canonical central source, and the obsolete max-lines exception for the deleted directory is removed. The generated `mms-integration-test` outputs remain ignored by Mobile and are installed through `yarn skills` after the central PR merges. Verification: - MetaMask/skills CLI tests: 41/41 passing - `metamask-skills describe testing/integration-test --repo metamask-mobile` - installer dry-run verified Claude, Cursor, and Agents outputs - `git diff --check` Dependency: merge [MetaMask/skills#78](MetaMask/skills#78) before this PR. ## **Changelog** <!-- mms-check: type=changelog required=true blocking=true --> CHANGELOG entry: null ## **Related issues** <!-- mms-check: type=issue-link required=true --> Refs: MetaMask#29749, MetaMask/skills#78 ## **Manual testing steps** <!-- mms-check: type=manual-testing required=true --> N/A — developer-only documentation and generated skill source migration; installer behavior is verified in MetaMask/skills. ## **Screenshots/Recordings** <!-- mms-check: type=screenshot required=true --> ### **Before** N/A — no user-facing UI change. ### **After** N/A — no user-facing UI change. ## **Pre-merge author checklist** <!-- mms-check: type=checklist required=true --> - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I've included tests if applicable - [x] I've documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I've applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. #### Performance checks (if applicable) - [x] I've tested on Android - Ideally on a mid-range device; emulator is acceptable - [x] I've tested with a power user scenario - Use these [power-user SRPs](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/edit-v2/401401446401?draftShareId=9d77e1e1-4bdc-4be1-9ebb-ccd916988d93) to import wallets with many accounts and tokens - [x] I've instrumented key operations with Sentry traces for production performance metrics - See [`trace()`](/app/util/trace.ts) for usage and [`addToken`](/app/components/Views/AddAsset/components/AddCustomToken/AddCustomToken.tsx#L274) for an example For performance guidelines and tooling, see the [Performance Guide](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/400085549067/Performance+Guide+for+Engineers). ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- Generated with the help of the pr-description AI skill --> Made with [Cursor](https://cursor.com) --------- Co-authored-by: Cursor <cursoragent@cursor.com>
roz0n
pushed a commit
to MetaMask/metamask-mobile
that referenced
this pull request
Jul 29, 2026
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until this PR meets the canonical Definition of Ready For Review in `docs/readme/ready-for-review.md`. In short: the template must be materially complete (not just section titles present), all status checks must be currently passing, and the only expected follow-up commits must be reviewer-driven. --> ## **Description** <!-- mms-check: type=text required=true --> Removes the hand-authored `.agents/skills/integration-test` copy introduced by #29749. Agent skills are centrally maintained and generated from [MetaMask/skills#78](MetaMask/skills#78), matching the existing `component-view-test` distribution model. Framework documentation now links to the canonical central source, and the obsolete max-lines exception for the deleted directory is removed. The generated `mms-integration-test` outputs remain ignored by Mobile and are installed through `yarn skills` after the central PR merges. Verification: - MetaMask/skills CLI tests: 41/41 passing - `metamask-skills describe testing/integration-test --repo metamask-mobile` - installer dry-run verified Claude, Cursor, and Agents outputs - `git diff --check` Dependency: merge [MetaMask/skills#78](MetaMask/skills#78) before this PR. ## **Changelog** <!-- mms-check: type=changelog required=true blocking=true --> CHANGELOG entry: null ## **Related issues** <!-- mms-check: type=issue-link required=true --> Refs: #29749, MetaMask/skills#78 ## **Manual testing steps** <!-- mms-check: type=manual-testing required=true --> N/A — developer-only documentation and generated skill source migration; installer behavior is verified in MetaMask/skills. ## **Screenshots/Recordings** <!-- mms-check: type=screenshot required=true --> ### **Before** N/A — no user-facing UI change. ### **After** N/A — no user-facing UI change. ## **Pre-merge author checklist** <!-- mms-check: type=checklist required=true --> - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I've included tests if applicable - [x] I've documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I've applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. #### Performance checks (if applicable) - [x] I've tested on Android - Ideally on a mid-range device; emulator is acceptable - [x] I've tested with a power user scenario - Use these [power-user SRPs](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/edit-v2/401401446401?draftShareId=9d77e1e1-4bdc-4be1-9ebb-ccd916988d93) to import wallets with many accounts and tokens - [x] I've instrumented key operations with Sentry traces for production performance metrics - See [`trace()`](/app/util/trace.ts) for usage and [`addToken`](/app/components/Views/AddAsset/components/AddCustomToken/AddCustomToken.tsx#L274) for an example For performance guidelines and tooling, see the [Performance Guide](https://consensyssoftware.atlassian.net/wiki/spaces/TL1/pages/400085549067/Performance+Guide+for+Engineers). ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- Generated with the help of the pr-description AI skill --> Made with [Cursor](https://cursor.com) --------- Co-authored-by: Cursor <cursoragent@cursor.com>
MajorLift
added a commit
to MajorLift/metamask-skills
that referenced
this pull request
Jul 30, 2026
CHANGELOG.md tracks consumer-facing changes to the `@metamask/skills` package, per CONTRIBUTING's "CLI / tooling changes" section. No merged skill-only PR adds an entry (MetaMask#80, MetaMask#78, MetaMask#70, MetaMask#62, MetaMask#61 all touch zero changelog lines). Carrying one here bought nothing and was the sole source of this branch's conflict with `main`, since every skill PR edits the same `[Unreleased]` block. Restoring the file to its merge-base state makes the branch conflict-free without a merge commit.
MajorLift
added a commit
to MajorLift/metamask-skills
that referenced
this pull request
Jul 30, 2026
CHANGELOG.md tracks consumer-facing changes to the `@metamask/skills` package, per CONTRIBUTING's "CLI / tooling changes" section. No merged skill-only PR adds an entry (MetaMask#80, MetaMask#78, MetaMask#70, MetaMask#62, MetaMask#61 all touch zero changelog lines). It was also the sole source of this branch's conflict with `main`, since every skill PR edits the same `[Unreleased]` block.
MajorLift
added a commit
to MajorLift/metamask-skills
that referenced
this pull request
Jul 30, 2026
CHANGELOG.md tracks consumer-facing changes to the `@metamask/skills` package, per CONTRIBUTING's "CLI / tooling changes" section. No merged skill-only PR adds an entry (MetaMask#80, MetaMask#78, MetaMask#70, MetaMask#62, MetaMask#61 all touch zero changelog lines). It was also the sole source of this branch's conflict with `main`, since every skill PR edits the same `[Unreleased]` block.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Centralizes the MetaMask Mobile
integration-testskill that was originally checked into Mobile by MetaMask/metamask-mobile#29749.The skill follows the existing
component-view-testsource layout:skill.mdrepos/metamask-mobile.mdoverlay with Mobile-specific workflow and rulesThe README and peer CV/unit skills now include integration testing in their layer-selection guidance.
Type of Change
Skill Details (if adding a new skill)
Provider Name: MetaMask
Skill Name: integration-test
Brief Description: Write, fix, and review MetaMask Mobile controller-app integration tests using real controller code with the I/O boundary mocked.
Checklist
Testing
node --test test/*.test.mjs— 41/41 passingnode bin/metamask-skills.mjs describe testing/integration-test --repo metamask-mobiletools/install --repo metamask-mobile --target <mobile-checkout> --domain testing --dry-runmms-integration-testAdditional Context
A coordinated MetaMask Mobile PR removes the repository-owned
.agents/skills/integration-testcopy and points framework documentation at this canonical source.Made with Cursor
Coordinated cleanup: MetaMask/metamask-mobile#33864.