Authoring a MetaMask controller: BaseController or not, state metadata (`persist`, `anonymous`, `usedInUi`), `this.update`, the options-bag constructor, typed messenger actions. Use when writing or reviewing a controller, or changing what it persists or…
MetaMask/skills
SkillsMP has collected 53 skills from MetaMask/skills. Open a skill to review its source and details.
- Latest recorded source activity
- SkillsMP catalog refreshed
- skills collected
- 53
- GitHub stars
- 24
- GitHub forks
- 11
Skills in this repository
Showing 40 of 53 collected skills.
Wire a new or existing controller — whether imported from a `@metamask/*-controller` npm package or defined locally in the repo — into the MetaMask Mobile Engine or the MetaMask Extension background. Use this skill when: adding a controller to Engine or to…
Extension UI hooks and effects: when not to use `useEffect`, dependency arrays, why `JSON.stringify` deps are never the fix, cascading effects, `AbortController` cleanup. Use when an effect loops or fires every render, deps are stringified to force equality,…
React Compiler in the Extension UI: what it optimizes, where it bails out, and when manual memoization is still needed. Use when deciding whether `useMemo`, `useCallback` or `React.memo` are still required, reviewing reflexive memoization, or working out why…
Extension UI render performance: list keys, virtualization, `React.memo`, code splitting, Web Workers, debouncing. Use when a long list stutters, scrolling feels janky, a component re-renders more than it should, or a route loads slowly. Effects go to…
Extension Redux state and selectors: reducer purity, keeping non-serializable values out of the store, normalization, Immer, batching, identity output selectors. Use when components re-render on unrelated state changes, a selector returns a fresh identity…
Single MetaMask Extension testing entrypoint. Routes unit, UI and composed-background integration, and Selenium E2E create/maintain work (flakiness, POM anti-patterns) to the right references. Use when writing, fixing, reviewing, or placing Extension tests;…
General coding standards for MetaMask client repos: TypeScript-only new code, no `any`, naming, file layout, error handling, and the required- reading and enforcement checklist. Use when writing or refactoring application code, when deciding how to structure…
Creates a GitHub pull request end to end: runs precondition checks, generates the PR description, identifies code owners, opens the PR, and offers to add it to the review queue. Use when the user asks to open, create, raise, or submit a PR, or says their…
Identifies the code owners for the files changed on the current branch by matching them against CODEOWNERS, and maps each owning team to its Slack handle. Use when deciding who should review a change, who owns a file or directory, or as the reviewer step of…
Generates a pull request description for the current branch, following the repo's PR template sections. Use when writing or rewriting a PR body, when the user asks what to put in a PR description, or as the description step of opening a PR.
Pull request standards for MetaMask client repos: title and conventional- commit format, PR template compliance, required labels and assignment, branch naming, and review best practices. Use when writing a PR title or description, reviewing someone else's PR,…
Single MetaMask Mobile testing entrypoint. Routes unit, component-view, integration, Appium E2E, and test-layer placement work to the right references. Use when writing, fixing, reviewing, or placing Mobile tests; when the user mentions Jest layers,…
Scaffolds (initializes) a new React Native component for MetaMask Mobile. Use when the user asks to create, add, generate, scaffold, initialize, or set up a new component, UI component, or feature component.
UI component development standards for MetaMask clients: the strict design-system-first component hierarchy, availability checks before building custom components, styling with design tokens, and required imports. Use when building, restyling, or reviewing…
MetaMask content design rules for user-facing strings — sentence case, punctuation, voice, tone, and terminology. Use when writing or reviewing copy in locale files, then checking the same standards in stories, constants, and README examples.
Generate an Acceptance Criteria (AC) live Confluence doc for a Jira epic, following the Assets team's standard structure (Overview, Documentation table, Testing Scenarios table with Given/When/Then criteria and QA sign-off checkboxes), then link it from the…
Migrate existing files so the React Compiler can optimize them, using react-compiler-marker output as the source of truth. Use when fixing React Compiler bail-outs, working through a react-compiler-marker report, or when the user mentions rcm, compiler…
Deprecated. Use testing/extension-testing instead — E2E flakiness catalog via references/e2e/flakiness.md (enter through references/e2e.md → maintain.md). Kept as a redirect stub for older installs and --include paths.
Deprecated. Use testing/extension-testing instead — Selenium E2E via references/e2e.md. Kept as a redirect stub for older installs and --include paths. For MetaMask Mobile, use testing/mobile-testing.
Deprecated. Use testing/extension-testing (references/unit.md) for MetaMask Extension, or testing/mobile-testing (references/unit.md) for MetaMask Mobile. Kept as a redirect stub for older installs and --include paths.
Parse an already-recorded Hermes / React Native Release Profiler `.cpuprofile` (ideally symbolicated with source maps) and audit it for slow frames on the swaps/bridge screen and the modals or subpages it opens — quote select screen, post-trade modal, batch…
Check branch for missing tests and guidelines
Deprecated. Use testing/mobile-testing instead — Appium via references/appium-e2e.md. Kept as a redirect stub for older installs and --include paths.
Add a new EVM network to the unified Swaps/Bridge flow in MetaMask Extension or MetaMask Mobile. Use when a task asks to register a new EVM chain for swaps or bridge, consume a newly supported bridge-controller chain, extend the bridge chain allowlist…
Drives the MetaMask Mobile via the mm CLI for visual testing in IOs simulator or Android emulator. Use when asked to visually verify UI changes, capture screenshots or debug Mobile UI state. Trigger phrases include "verify visually", "take a screenshot",…
Detect, prevent, and fix flaky Jest unit tests in MetaMask Mobile before they reach CI. Use this skill when: reviewing a PR diff or changed test files for flakiness risk, fixing an intermittently failing Jest test, reproducing a flaky test locally, or…
Deprecated. Use testing/mobile-testing instead (references/component-view.md). Kept as a redirect stub for older installs and --include paths.
Deprecated. Use testing/mobile-testing instead (references/integration.md). Kept as a redirect stub for older installs and --include paths.
Deprecated. Use testing/mobile-testing instead (references/placement.md). Kept as a redirect stub for older installs and --include paths.
Pre-flight self-review gate for perps PRs. A perps dev runs it on their OWN PR to drive a looping double-agentic cross-review — two different model CLIs (Claude, Codex, Cursor) review independently because each catches different issues — until all APPROVE the…
Interactively validate perps changes across local MetaMask Core, Mobile, and Extension checkouts. Use when a Core @metamask/perps-controller change must be checked in Mobile/Extension, or when a Mobile/Extension perps change needs parity validation in the…
Add a new EVM network to the @metamask/bridge-controller package in the MetaMask/core monorepo. Use when a task asks to register an EVM chain for Swaps or Bridge, extend ALLOWED_BRIDGE_CHAIN_IDS or DEFAULT_CHAIN_RANKING, add bridge chain constants and display…
Interactively break a perps product requirement into split, dispatch-ready technical tickets across MetaMask Core, its release, Mobile, and Extension. Use when a product manager (or a codebase-aware Claude acting for one) has a perps bug or feature and needs…
Interactively author one clean, complete perps ticket — bug, EPIC, or initiative — that states intent and expected outcome without implementation. Use when a PM (or a Claude acting for one) has a raw perps observation, feature idea, or strategic goal and…
Drives the MetaMask Chrome extension via the mm CLI for visual testing in headedless Chrome. Use when asked to visually verify UI changes, capture screenshots or debug extension UI state. Trigger phrases include "verify visually", "take a screenshot", "test…
Use for any performance question about the MetaMask Mobile React Native app, at any stage. Trigger when: a screen, list, or interaction feels slow, laggy, or janky (account/network switching, scrolling, typing, FPS drops); planning a feature with…
Build x402 payment flows using MetaMask Smart Accounts Kit, machine to machine payments over HTTP with ERC-7710 delegations and ERC-7715 Advanced Permissions
Build dApps with MetaMask Smart Accounts Kit — ERC-4337 smart accounts, delegations, and Advanced Permissions (ERC-7715)
Deeplink handler creation guidelines
Source text: Undetermined