Repository navigation
docs(ui): reshape ui-development for Extension — shared MCP-free base, thin overlay, no Storybook MCP requirement - #213
Draft
georgewrmarshall wants to merge 5 commits into
Conversation
9 of 11 tasks
…e MCP-free Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
…form rules Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
cursor
Bot
force-pushed
the
cursor/mmds-extension-skills-no-storybook-mcp-7309
branch
from
November 5, 2026 20:47
7306caf to
9c57432
Compare
This was referenced Nov 5, 2026
Deprecation replacements must be exported on the installed platform, Legacy* aliases trigger only on same-file clashes, cross-skill pointers are qualified, the Strategy link survives install, and the manifest reference explains non-component entries. Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
Name ui/helpers/constants/design-system as the source of clashing legacy enums, allow deleting SCSS a change makes unused, prefer Box typed props for layout, require native buttons or links for clickable UI, and drop the duplicate Strategy link. Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
cursor Bot
pushed a commit
that referenced
this pull request
Nov 5, 2026
… and #213 Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
georgewrmarshall
commented
Nov 6, 2026
|
|
||
| ### Changed | ||
|
|
||
| - Expand the shared `ui/ui-development` base so it works with no MCP server: a source order (installed package types win, then the hosted Storybook components manifests, the component README at the installed version's tag, repository usage, and Figma MCP with Code Connect when connected), component choice and deprecation rules, foundations, durable typography rules, the `Legacy*` alias rule for incremental migrations, and the Active accessibility, trust, and sheet rules from the Design Brain. Add `references/reading-mmds-manifests.md`, and update the agentic design system strategy so Storybook MCP is optional and skills carry no release-pinned inventories. |
There was a problem hiding this comment.
I removed the shared ui/ui-development entry from CHANGELOG.md, but the branch already had that change pushed before I got to it, so I added no new commit.
My local commit removed the same line that remote commit 250424a had already removed. The remote commit also removed the Extension ui/ui-development entry, so both entries are now gone from the PR. I reset my checkout to the remote branch, which is at 250424a, and nothing else changed. The only remaining ui-development changelog line is an older entry from main.
Skill reshape changes are not release-note material for this PR. Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
This branch has not been deployed
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
This reshapes the
ui/ui-developmentskill for MetaMask Extension. Onmain, the Extension overlay makes Storybook MCP a required first step, so it breaks whenever Context Forge is down. After this PR the skill works with no MCP server and carries no release-pinned inventory. The previous version of this PR added a 231-line inventory pinned todesign-system-react@0.49.0while Extension pinned^0.47.0. Extension has since moved to^0.51.0(metamask-extension#47305), so that inventory would already be stale. This rewrite drops it.Mobile gets the same reshape in #212. Both PRs carry an identical first commit with the shared base. I test-merged them into
mainin both orders and both merges were clean, so whichever lands second just has its copy of that commit drop out.Commit 1 (shared, identical in #212): expand the
ui-developmentbasedomains/ui/skills/ui-development/skill.mdgoes from a one-line pointer to about 200 lines:When to use, and a short Workflow for Create and Review.
Sources, in order, with no MCP needed:
node_modules. These win whenever sources disagree.main, and that snippets can import enums fromdesign-system-shared. Enums still come from the platform package.@metamask/<package>@<installed version>, taken from the installedpackage.json. No release is hard-coded.Storybook MCP and Context Forge are optional only. Agents never block on them and never configure them.
Choosing a component: check the manifest and installed exports before inventing anything, and never port across platforms. The order is MMDS, then non-deprecated legacy, then a feature component, then custom UI with a recorded reason. "Deprecated" means
@deprecatedin the types orjsDocTags.deprecatedin the manifest.Foundations: tokens, Tailwind through the presets, the spacing and radius scale, no arbitrary values, contrast, and i18n tolerance.
Typography:
FontFamily.Defaultby default, andText+TextVariantinstead of raw sizes. Hero is for approved hero cases only. For amount inputs, a single line points to the Proposed Typography rule in the Design Brain and MMDS reference; the skill does not settle that question.The
Legacy*alias rule for incremental migrations.Accessibility, trust, and sheets: short Active Design Brain rules, inlined because agents can't read Notion. Proposed rules are linked, not enforced.
MMDS agent docs: links to
AGENTS.md,docs/ai-agents.md,.cursor/rules/styling.md,figma-integration.md, andcomponent-migration.mdinstead of copies.It also adds
references/reading-mmds-manifests.md, which explains how to readcomponents.jsonand is never synced to a release. It updatesknowledge/agentic-design-system-strategy.md: the baseline is installed types + hosted manifests + consumer Tailwind, Storybook MCP is optional, skills must work with no MCP, and skills carry no release-pinned inventories.Commit 2 (Extension only)
ui-development/repos/metamask-extension.mdis rewritten as about 100 lines of durable platform rules:tailwind.config.jswith the MMDS preset and no default palette or font sizes, class names only, and no SASS/SCSS.ButtonIcon ariaLabel,role="alert"/aria-liveon an already-mounted container,aria-expanded, and keyboard behavior.Legacy*alias paths forui/components/component-library, with a do/don't example.The "Required Storybook MCP Workflow" section and the separate fallback section are removed, as are version pins and named deprecation lists.
The pinned
references/mmds-react.mdis deleted. It never landed onmain.Explicitly kept out: the PR media table rule, process and routing, copy rules beyond a pointer to
content-guidelines, glass patterns, and the Hero-vs-Default decision for amount inputs.Eval fixes (commit 3 shared, commit 4 per platform)
The eval in #220 found 13 issues. This PR applies the actionable ones. The shared commit (
1ae0f98here,6868dbcon #212) is byte-identical on both branches:Legacy*alias applies when a file imports the same name from a legacy source and from MMDS. Other legacy imports keep their names until migrated.content-guidelinesandcomponent-scaffoldpointers are qualified with "where the repository has them".reading-mmds-manifests.mdexplains the non-component entries (design-tokens-/docs-,patterns-, cast-expression names). An entry counts as a component only when itspathis undersrc/components/and its name is in the installed export index.Extension overlay commit (
a46f691):ui/helpers/constants/design-system. Alias the ones the file also imports from MMDS (TextVariant,TextColor,TextAlign,FontWeight,IconColor, …). Legacy-only enums (Display,FlexDirection,AlignItems,JustifyContent,BackgroundColor,BorderColor) keep their names. The Do example shows both.@importlines that your change makes unused is expected." The checklist matches.Boxtyped props for layout andclassNamefor the rest. Follow accessible web practices for anything clickable: a native<button type="button">or<a>(for example viaBox asChild) with preset state classes, neveronClickon adiv/span.The re-run (
ui-development-reshape-2026-11-05-rerun.md) gives Pass on all four scenarios on both platforms, and both Extension Partials are now Pass. It ran against Extension's new React 0.51.0 pin, with no skill change needed. ISS-010 and ISS-011 (Design Brain) are deferred to review; this work makes no Notion change. ISS-003 still applies: merge #212 and #213 together.CHANGELOG
This PR adds no
CHANGELOG.mdentries. A reviewer asked for the entries to be removed, so commit250424adrops the two bullets this PR had added, andCHANGELOG.mdmatchesmain.Type of Change
Checklist
Testing
yarn test: 76/76 pass.yarn lint: pass.yarn audit:skills: 0 errors, andui/ui-developmenthas no warnings.domains/ui/resolves, and nothing referencesmmds-react*.md,v77, or a pinned version.tools/install --repo metamask-extension --domain uirendersmms-ui-development/SKILL.md(314 lines, base + overlay) withreferences/reading-mmds-manifests.mdbundled.mainis clean in both orders.metamask-extensionmain:tailwind.config.js(preset,colors/fontSizereset),ui/components/component-library,ui/helpers/constants/design-system.ts, andui/components/ui/marketing-moment.Additional Context
Proposed(ISS-010), and an Active Design Brain rule ranks MMDSmainabove installed types (ISS-011). Both are deferred to Design Brain review; this PR does not change Notion.ButtonFilterstill has no React replacement: its JSDoc namesFilterButton, which only RN exports, and React 0.51.0 still lacks it. Under ISS-005 the skill now says to keep existing usage and record the gap when the named replacement is not exported on this platform. That gap should be reported to MMDS.