From 48b2dc83d4805ded8ee4b648acd5bd9781120be6 Mon Sep 17 00:00:00 2001 From: Jongsun Suh Date: Wed, 9 Sep 2026 10:21:35 -0400 Subject: [PATCH 1/2] Name `@MetaMask/extension-platform` owner of five skill domains `observability`, `platform`, `security`, `stability` and `typescript` fall to the `*` catch-all today, so a change to any of them is owned by both platform teams jointly and by neither in particular. The paths are added ahead of the directories, which arrive in the PRs adding each domain. No workflow validates CODEOWNERS paths, so an entry for a path that does not exist yet is inert rather than failing. One entry per domain keeps this out of the five PRs that would otherwise each edit this file and conflict. --- .github/CODEOWNERS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 20217c32..07e7335a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -16,9 +16,14 @@ /domains/assets/ @MetaMask/metamask-assets /domains/coding/ @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform /domains/general/ @MetaMask/extension-platform @MetaMask/mobile-platform +/domains/observability/ @MetaMask/extension-platform /domains/performance/ @MetaMask/extension-platform @MetaMask/mobile-platform /domains/perps/ @MetaMask/perps +/domains/platform/ @MetaMask/extension-platform /domains/pr-workflow/ @MetaMask/extension-platform @MetaMask/mobile-platform +/domains/security/ @MetaMask/extension-platform +/domains/stability/ @MetaMask/extension-platform /domains/swaps/ @MetaMask/swaps-engineers /domains/testing/ @MetaMask/qa +/domains/typescript/ @MetaMask/extension-platform /domains/ui/ @MetaMask/design-system-engineers From 35ef93c537ee8ba2f23b2fb777de4bd743945ef4 Mon Sep 17 00:00:00 2001 From: Jongsun Suh Date: Wed, 9 Sep 2026 10:42:11 -0400 Subject: [PATCH 2/2] Co-own the five domains and scope client ownership to the overlays A domain holds the cross-client skill as well as the overlays, so naming one platform team owner of a whole domain claims the shared half too. Both platform teams co-own each domain, matching `coding`, `general`, `performance` and `pr-workflow`. Ownership of a single client's material is expressed where that material actually is: the `repos/.md` overlay. Those rules follow the domain block so they take precedence, and they name each of the five domains rather than globbing, because `/domains/**/repos/metamask-extension.md` would move 11 files away from `@MetaMask/qa`, `@MetaMask/swaps-engineers`, `@MetaMask/design-system-engineers` and `@MetaMask/perps`. --- .github/CODEOWNERS | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 07e7335a..1d214d74 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -16,14 +16,28 @@ /domains/assets/ @MetaMask/metamask-assets /domains/coding/ @MetaMask/extension-platform @MetaMask/mobile-platform @MetaMask/core-platform /domains/general/ @MetaMask/extension-platform @MetaMask/mobile-platform -/domains/observability/ @MetaMask/extension-platform +/domains/observability/ @MetaMask/extension-platform @MetaMask/mobile-platform /domains/performance/ @MetaMask/extension-platform @MetaMask/mobile-platform /domains/perps/ @MetaMask/perps -/domains/platform/ @MetaMask/extension-platform +/domains/platform/ @MetaMask/extension-platform @MetaMask/mobile-platform /domains/pr-workflow/ @MetaMask/extension-platform @MetaMask/mobile-platform -/domains/security/ @MetaMask/extension-platform -/domains/stability/ @MetaMask/extension-platform +/domains/security/ @MetaMask/extension-platform @MetaMask/mobile-platform +/domains/stability/ @MetaMask/extension-platform @MetaMask/mobile-platform /domains/swaps/ @MetaMask/swaps-engineers /domains/testing/ @MetaMask/qa -/domains/typescript/ @MetaMask/extension-platform +/domains/typescript/ @MetaMask/extension-platform @MetaMask/mobile-platform /domains/ui/ @MetaMask/design-system-engineers + +# Repo overlays name one client, so the platform team for that client owns them. +# Scoped to the domains above: a blanket /domains/**/repos/ rule would move 11 files +# away from @MetaMask/qa, swaps-engineers, design-system-engineers and perps. +/domains/observability/skills/*/repos/metamask-extension.md @MetaMask/extension-platform +/domains/platform/skills/*/repos/metamask-extension.md @MetaMask/extension-platform +/domains/security/skills/*/repos/metamask-extension.md @MetaMask/extension-platform +/domains/stability/skills/*/repos/metamask-extension.md @MetaMask/extension-platform +/domains/typescript/skills/*/repos/metamask-extension.md @MetaMask/extension-platform +/domains/observability/skills/*/repos/metamask-mobile.md @MetaMask/mobile-platform +/domains/platform/skills/*/repos/metamask-mobile.md @MetaMask/mobile-platform +/domains/security/skills/*/repos/metamask-mobile.md @MetaMask/mobile-platform +/domains/stability/skills/*/repos/metamask-mobile.md @MetaMask/mobile-platform +/domains/typescript/skills/*/repos/metamask-mobile.md @MetaMask/mobile-platform