executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
workflow-mobile-native-uiuxFull native UI/UX run on a Capacitor, Expo, or RN app: plumbing, native feel, a11y, device QA, PR. Use for "fix our mobile UI/UX", "native pass to a PR", or "feel native and ship".
Independent GitHub snapshot · Automated classification · Original documentation governs
Degree of freedom: MIXED. Which fixes each screen gets [HIGH freedom];
step order, skip rules, device probes, and the PR evidence
[LOW freedom — run exactly].
The app ships and works, but it reads as a website in a shell. This workflow runs the mobile skills in the order their outputs depend on each other: separate the surfaces, fix the shell plumbing, run the native-feel pass, then prove it with accessibility, layout, and device checks before one PR.
| Skill | Owns |
|---|---|
| workflow-mobile-native-uiux (this) | The end-to-end run: every step below, one branch, one PR |
enhance-mobile-native-feel | The design pass alone (step 3), no verification sweep or PR |
mobile-rn-screen | One React Native screen |
plan-mobile-readiness | Store submission audit, plan-only; run it after this if a release is next |
plan-capacitor-hardening | Native-layer security, plan-only |
design-mobile-first | A new touch-first UI, not an existing app |
Illustrative. Baseline: Capacitor 8.1, React + Ionic, PWA and both stores from one codebase;
targetSdkVersion 35; JS tab bar; scorecard 3/10. Order: step 1 splitsuseIsMobileinto form factor / platform / pointer; step 2 moves totargetSdkVersion 36,SystemBars, deletesStatusBar.setBackgroundColor, adds the back listener; step 3 moves secondary flows to sheets and fixes haptic styles. Prove: 2.5.8 probe finds 11 icon buttons at 20 px; fixed on touched screens, 3 left on the untouched settings page go in the report. Tablet AVD landscape was a stretched phone; fixed. Back from a nested route exited the app; fixed. Ship: scorecard 3 → 9/10; PR notes a store build is needed (native config changed).
not run when no Mac was availableplan-mobile-readiness; security → plan-capacitor-hardening0. BASELINE → versions, before-screenshots, scorecard (no skill)
1. SURFACES → enhance-capacitor-ui (only if one codebase also ships to the web)
2. PLUMBING → mobile-capacitor-platform (Capacitor only: § Native shell plumbing)
3. NATIVE FEEL → enhance-mobile-native-feel (chrome, IA, lists, motion, haptics, type)
4. ACCESSIBILITY → audit-accessibility (WCAG 2.2 AA, incl. 2.5.8 / 2.4.11 / 2.5.7)
5. LAYOUT → audit-responsive (phone landscape, tablet, foldable)
6. DEVICE QA → mobile-emulator-test (walk + native-feel probes on Android 16)
7. PR → workflow-pr (before/after, scorecard, probe table)
Skip step 1 when the app has no web surface, and step 2 for Expo / React Native
(their shell recipes live in enhance-mobile-native-feel). Name every skip in the
report. Work on one branch and commit after each step (workflow-git-commit
format), so step 7 starts from a committed branch.
The turn ends at the step-7 PR or at a real gate: a decision only the user can make, a missing credential, a device that will not boot. A step summary is a progress note, not a stopping point.
grep -E '"(expo|react-native|@capacitor/core|@ionic/react|@ionic/angular)"' package.json
grep -nE 'targetSdkVersion|compileSdkVersion' android/variables.gradle android/app/build.gradle 2>/dev/null
git switch -c feat/native-uiux
Boot an Android 16 AVD (Expo / RN: mobile-emulator-start; Capacitor:
npx cap run android). Screenshot every top-level screen in light and dark, and
fill the enhance-mobile-native-feel scorecard. These are the "before" set.
Read the
enhance-capacitor-uiskill and follow it.
Done when no useIsMobile answers platform or pointer, chrome visibility is
CSS-gated, and the six-cell matrix was viewed.
Read the
mobile-capacitor-platformskill and follow its Version discipline and Native shell plumbing sections only.
Done when every plumbing row has its probe result and the dead-bar-config grep returns zero hits.
Read the
enhance-mobile-native-feelskill and follow it.
Run the whole fix order. Done when the re-scored card and the reduced-motion, target-size, and back gates pass.
Read the
audit-accessibilityskill and follow it.
That skill reports first. Here, the request to fix the app's UI/UX approves fixing
Level A and AA findings on the screens steps 1–3 touched; list the rest in the
report with their SC. Capacitor: audit the web build at a 390×844 viewport.
Expo / RN with no web build: axe does not apply; check accessibilityLabel,
accessibilityRole, and hit areas in code, run the device probes in step 6, and
mark the axe rows not run.
Read the
audit-responsiveskill and follow it.
Include the native cells (844 390 and 1024 768). That skill waits for approval
when the scope is large; here, the request to fix the app's UI/UX is that approval
for the screens steps 1–3 touched, so implement without stopping and list the rest.
Done when no screen is a stretched portrait phone in landscape or on a tablet.
Read the
mobile-emulator-testskill and follow it.
Run the walk plus its Native-feel probes (back, font scale 2.0, reduce motion,
large screen, gesture vs 3-button nav). iOS needs a Mac with a simulator;
otherwise report iOS as not run, never as passed.
Read the
workflow-prskill and follow it.
The PR description carries: before/after screenshots per top-level screen, the
scorecard before → after, the probe table from step 6, the skipped steps with
reasons, and whether a store build is needed (any change under ios/,
android/, capacitor.config.*, or app.json native keys needs one; JS, CSS,
and assets alone can ship over the air where the app uses OTA). Merge only if
the user asked.
## Native UI/UX pass — <app> — <date>
**Stack:** <Capacitor n | Expo SDK n / RN n> · targetSdk <n> · **Score:** <before>/10 → <after>/10
| Step | Result | Evidence |
|---|---|---|
| 1 Surfaces | done / skipped (<reason>) | |
| 2 Plumbing | done / skipped (<reason>) | probe outputs |
| 3 Native feel | done | before/after paths |
| 4 Accessibility | n fixed · n listed | SC per finding |
| 5 Layout | done | landscape + tablet shots |
| 6 Device QA | Android ✓ · iOS ✓ / not run | probe table |
| 7 PR | <url> | store build: yes / no |
**Open:** <what still fails and why>