Skip to content

chore: add Cursor automation spec for React parity (DSYS-302) - #1433

Draft
georgewrmarshall wants to merge 6 commits into
mainfrom
chore/react-parity-from-mobile-automation
Draft

chore: add Cursor automation spec for React parity (DSYS-302)#1433
georgewrmarshall wants to merge 6 commits into
mainfrom
chore/react-parity-from-mobile-automation

Conversation

@georgewrmarshall

Copy link
Copy Markdown
Contributor

Description

Adds a version-controlled Cursor Automations spec for epic DSYS-302 (React parity with existing React Native MMDS components). The Cursor Automations UI does not store prompts in git; this file is the canonical source for Jira pickup, Extension audit, implementation rules, Storybook demos, PR, and Slack steps — matching the existing enum-shared-type-migration pattern.

Priority queue starts with ListItem (DSYS-713) and SectionHeader (DSYS-751).

Related issues

Fixes: N/A (tooling / agent orchestration for DSYS-302)

Manual testing steps

  1. Open .cursor/automations/react-parity-from-mobile.md and confirm JQL, priority queue, and cloud prompt block look correct.
  2. In Cursor Automations, paste the cloud prompt into Design System React Component Parity with React Native (or @-mention this file once merged to main).
  3. Optionally run the automation once (or invoke @.cursor/automations/react-parity-from-mobile.md in IDE) and confirm it targets DSYS-713 first when unclaimed.

Screenshots/Recordings

N/A — docs-only change.

Before

N/A

After

N/A

Pre-merge author checklist

  • I've followed MetaMask Contributor Docs
  • I've completed the PR template to the best of my ability
  • I’ve included tests if applicable (N/A — markdown automation spec)
  • I’ve documented my code using JSDoc format if applicable (N/A)

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.

Made with Cursor

Version-control the agent orchestration for migrating RN components into design-system-react, including Extension audit and Storybook demo steps.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

📖 Storybook Links

Compare the preview for this pull request with the latest Storybooks from the main branch.

🔀 Pull Request Preview

🌳 Main Branch (Latest)

Comment thread .cursor/automations/react-parity-from-mobile.md
ListItem React parity depends on these RN components; align the automation queue with new DSYS-302 tickets.

Co-authored-by: Cursor <cursoragent@cursor.com>
@georgewrmarshall

Copy link
Copy Markdown
Contributor Author

Updated priority queue for ListItem deps:

  1. DSYS-1041 BoxRow
  2. DSYS-1042 BoxColumn
  3. DSYS-1043 Content
  4. DSYS-713 ListItem
  5. DSYS-751 SectionHeader

Jira blockers linked; comment added on DSYS-713. Re-paste the cloud prompt from the automation file after merge (or from this branch).

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📖 Storybook Links

Compare the preview for this pull request with the latest Storybooks from the main branch.

🔀 Pull Request Preview

🌳 Main Branch (Latest)

@cursor cursor 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.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Broken cloud selection control flow
    • Updated scheduled/cloud steps to apply the ListItem blocker check before claiming and to use a clear JQL fallback, restoring a coherent cascade.

Create PR

Or push these changes by commenting:

@cursor push 2c1ec50923
Preview (2c1ec50923)
diff --git a/.cursor/automations/react-parity-from-mobile.md b/.cursor/automations/react-parity-from-mobile.md
--- a/.cursor/automations/react-parity-from-mobile.md
+++ b/.cursor/automations/react-parity-from-mobile.md
@@ -61,10 +61,11 @@
 
 ### Scheduled / cloud (“always take backlog”)
 
-1. Walk the priority queue in order; take the **first** unclaimed To Do still open.
-2. Skip ListItem if it is blocked by open BoxRow/BoxColumn/Content issues.
-3. Else first result of the unclaimed To Do JQL.
-4. If empty → stop (no PR).
+1. Walk the priority queue in order; for each item:
+   - If it is **ListItem (DSYS-713)** and BoxRow/BoxColumn/Content blockers are open, **skip and continue** to the next item.
+   - If the issue is **unclaimed** and **To Do**, **take it** and stop.
+2. If none selected from the priority queue, take the **first unclaimed To Do** from the Rank-ordered JQL above.
+3. If empty → stop (no PR).
 
 **Jira:** Enable Atlassian/Jira MCP on the automation so the agent can search, assign, and transition.

You can send follow-ups to the cloud agent here.

Reviewed by Cursor Bugbot for commit 9f211ab. Configure here.

Comment thread .cursor/automations/react-parity-from-mobile.md Outdated
@cursor

cursor Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Interactive pickup skips assignees
    • Updated interactive selection to prioritize your assigned To Do items and to only prefer DSYS-713/751 when they are unassigned.

Create PR

Or push these changes by commenting:

@cursor push b7c9c2fcfe
Preview (b7c9c2fcfe)
diff --git a/.cursor/automations/react-parity-from-mobile.md b/.cursor/automations/react-parity-from-mobile.md
--- a/.cursor/automations/react-parity-from-mobile.md
+++ b/.cursor/automations/react-parity-from-mobile.md
@@ -50,8 +50,9 @@
 ### Interactive (IDE / manual run)
 
 1. Prefer **In Progress** assigned to you.
-2. Else prefer priority queue: **DSYS-713** then **DSYS-751** if still To Do.
-3. Else first unassigned To Do from Rank order.
+2. Else prefer **To Do** assigned to you.
+3. Else prefer priority queue: **DSYS-713** then **DSYS-751** if still **To Do** and **unassigned**.
+4. Else first unassigned To Do from Rank order.
 
 ### Scheduled / cloud (“always take backlog”)

You can send follow-ups to the cloud agent here.

Adopt shared-API / flatter-impl strategy for Content and ListItem; treat RN BoxRow, BoxColumn, and TextOrChildren as non-blockers.

Co-authored-by: Cursor <cursoragent@cursor.com>
@georgewrmarshall

Copy link
Copy Markdown
Contributor Author

Strategy update (option B): Content → ListItem → SectionHeader.

  • Canceled DSYS-1041 BoxRow and DSYS-1042 BoxColumn (RN helpers / footguns; no Mobile consumer usage).
  • Build Content/ListItem with direct Box/Text — no React TextOrChildren.
  • Re-paste the cloud prompt from this file into the Automations UI after merge.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📖 Storybook Links

Compare the preview for this pull request with the latest Storybooks from the main branch.

🔀 Pull Request Preview

🌳 Main Branch (Latest)

Lock the ordered backlog for Content through MainActionButton against existing DSYS-302 tickets.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📖 Storybook Links

Compare the preview for this pull request with the latest Storybooks from the main branch.

🔀 Pull Request Preview

🌳 Main Branch (Latest)

Comment on lines +33 to +49
| Order | Issue | Component |
| ----- | --------- | -------------------- |
| 1 | DSYS-1043 | **Content** |
| 2 | DSYS-713 | **ListItem** |
| 3 | DSYS-751 | **SectionHeader** |
| 4 | DSYS-750 | **SectionDivider** |
| 5 | DSYS-757 | **HeaderRoot** |
| 6 | DSYS-758 | **HeaderStandard** |
| 7 | DSYS-756 | **TitleSubpage** |
| 8 | DSYS-755 | **TitleStandard** |
| 9 | DSYS-752 | **TitleAlert** |
| 10 | DSYS-749 | **SelectButton** |
| 11 | DSYS-716 | **HeaderSearch** |
| 12 | DSYS-712 | **KeyValueRow** |
| 13 | DSYS-711 | **KeyValueColumn** |
| 14 | DSYS-715 | **Spinner** |
| 15 | DSYS-714 | **MainActionButton** |

@georgewrmarshall georgewrmarshall Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me know what you think of this priority @amandaye0h @brianacnguyen 🙏

  • Can we do a 1:1 or will they need design input and audit?

@brianacnguyen brianacnguyen Aug 10, 2026

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.

Missing from list

  • ListItemSelect
  • ListItemMultiSelect
  • KeyValueSelect
  • HeaderSubpage
  • Skeleton
  • Tag
  • IconAlert

Low priority

  • FilterButton
  • FilterButtonGroup
  • SegmentedControl

(TitleSubpage is no longer needed I think)

@georgewrmarshall georgewrmarshall Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cursoragent update the list accordingly - we already have some of these components in React(e.g. IconAlert, Tag) so just add the outstading ones

@cursor cursor Bot Aug 10, 2026

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.

  • I updated .cursor/automations/react-parity-from-mobile.md to include the outstanding components called out in review, excluding ones already implemented in React (IconAlert, Tag). I appended these to the priority queue: ListItemSelect, ListItemMultiSelect, KeyValueSelect, HeaderSubpage, Skeleton, FilterButton, FilterButtonGroup, and SegmentedControl (issue keys marked TBD for now).

  • I also removed the hardcoded “15 components” wording in the cloud prompt block so it stays accurate as the list evolves.

  • Changes are committed and pushed on chore/react-parity-from-mobile-automation.

Open in Web Open in Cursor 

@brianacnguyen brianacnguyen Aug 10, 2026

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.

all of these can do a 1:1, but anything interactive will need design input for hover states (though most of them can just use the bg-hover token for hover since a lot of these use bg-pressed for pressed). Anyways, these are

  • ListItem isInteractive
  • ListItemSelect
  • ListItemMultiSelect
  • SectionHeader
  • SelectButton
  • KeyValueSelect
  • Tag

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.

Note: BoxRow and BoxColumn is used quite a bit to build these, so not sure if it's worth it to build those first to make it easy

…e (DSYS-302)

Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Links

Compare the preview for this pull request with the latest Storybooks from the main branch.

🔀 Pull Request Preview

🌳 Main Branch (Latest)

…se-workflow.md

Co-authored-by: George Marshall <georgewrmarshall@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

📖 Storybook Links

Compare the preview for this pull request with the latest Storybooks from the main branch.

🔀 Pull Request Preview

🌳 Main Branch (Latest)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants