$npx -y skills add matlab/matlab-agentic-toolkit --skill matlab-build-appBuild MATLAB apps from requirements to working code. Asks discovery questions (or skips them when the path is known), recommends UIFigure or UIHTML path, identifies layout archetype (Dashboard, Explorer, Tabbed, Wizard, Canvas), produces an implementation plan, and executes the b
| 1 | # MATLAB App Builder |
| 2 | |
| 3 | Determine the best implementation path for a MATLAB application, produce an implementation plan grounded in internal references, and execute the build. |
| 4 | |
| 5 | ## When to Use This Skill |
| 6 | |
| 7 | Use this skill when: |
| 8 | - User wants to build a MATLAB app, GUI, or interactive tool |
| 9 | - User asks "how should I build this app?" or "which approach should I use?" |
| 10 | - User describes an application — with or without specifying an implementation path |
| 11 | - User mentions: MATLAB app, GUI, uifigure, uihtml, interactive tool, dashboard, visualization app |
| 12 | - User describes spatial layout needs: dashboard, control panel, sidebar, tabs, wizard, stepper, canvas, workspace |
| 13 | - User has already chosen a path (e.g., "build me a uihtml app") — handle directly |
| 14 | |
| 15 | ## When Not to Use |
| 16 | |
| 17 | - The request is purely about MATLAB computation with no UI component |
| 18 | - The user is asking about an existing app they want to modify (not build from scratch) |
| 19 | |
| 20 | ## Critical Rules |
| 21 | |
| 22 | - MUST ask discovery questions before recommending a path — unless the user already specified one |
| 23 | - MUST confirm the path choice with the user before producing the implementation plan |
| 24 | - MUST produce an implementation plan grounded in internal references before writing any code |
| 25 | - MUST write the plan to a file (`<app-name>-plan.md`) in the working directory |
| 26 | - NEVER recommend a path without understanding the user's constraints (unless path was pre-specified) |
| 27 | - ALWAYS present the recommendation as guidance, not a mandate — the user decides |
| 28 | - MUST choose archetype based on the user's primary task, not aesthetics |
| 29 | - NEVER treat two archetypes as equals within one app — one is always the primary container |
| 30 | - UIFigure app: MUST use `uigridlayout` for all structural layout — never `Position`-based sizing |
| 31 | - UIHTML/web app: MUST use CSS Grid or Flexbox for chrome — no absolute positioning for structural panels |
| 32 | - The chrome (header, sidebar, tabs, step indicator) MUST remain spatially stable |
| 33 | |
| 34 | ## Workflow |
| 35 | |
| 36 | ``` |
| 37 | User request arrives |
| 38 | │ |
| 39 | ├── Path NOT specified → Full Discovery |
| 40 | │ │ |
| 41 | │ ▼ |
| 42 | │ Ask discovery questions (2-4 questions, conversational) |
| 43 | │ │ |
| 44 | │ ▼ |
| 45 | │ Present path recommendation with trade-offs |
| 46 | │ │ |
| 47 | │ ▼ |
| 48 | │ User confirms path (or redirects) |
| 49 | │ │ |
| 50 | │ ▼ |
| 51 | │ Identify layout archetype (if not already clear) |
| 52 | │ │ |
| 53 | │ ▼ |
| 54 | │ Produce Implementation Plan → write to <app-name>-plan.md |
| 55 | │ │ |
| 56 | │ ▼ |
| 57 | │ User reviews plan → confirms or adjusts |
| 58 | │ │ |
| 59 | │ ▼ |
| 60 | │ Begin building (read references per the plan) |
| 61 | │ |
| 62 | └── Path IS specified (e.g., "build me a uihtml app") |
| 63 | │ |
| 64 | ├── Requirements sufficient + archetype clear |
| 65 | │ → Skip to: Produce Implementation Plan |
| 66 | │ |
| 67 | └── Requirements thin or archetype unclear |
| 68 | → Ask only missing requirements + archetype question |
| 69 | → Then: Produce Implementation Plan |
| 70 | ``` |
| 71 | |
| 72 | ## Discovery Questions |
| 73 | |
| 74 | Ask these conversationally — not as a rigid checklist. Stop as soon as the path is clear. Typically 2-4 questions suffice. |
| 75 | |
| 76 | ### Core Questions |
| 77 | |
| 78 | **1. What does the app do and who is it for?** |
| 79 | > What will this app do? Who will use it? |
| 80 | |
| 81 | Listen for archetype signals: "dashboard", "control panel", "step-by-step", "workspace". |
| 82 | |
| 83 | **2. Is this a quick tool or something you'll maintain over time?** |
| 84 | > Is this meant to be maintained and evolved, or is it more of a quick, proof-of-concept tool? |
| 85 | |
| 86 | - **Maintained** → proceed to remaining questions; team skills matter |
| 87 | - **Ephemeral** → favor UIHTML app path; can skip team question |
| 88 | |
| 89 | **3. How polished does the UI need to look?** |
| 90 | > Are standard MATLAB buttons, sliders, tables, and plots enough? Or do you need custom visuals — branded, animated, or visually richer? |
| 91 | |
| 92 | - Standard controls sufficient → UIFigure app signal |
| 93 | - Custom visuals needed → UIHTML app signal |
| 94 | |
| 95 | **4. Who will work on this app going forward?** |
| 96 | > Will this be maintained by people comfortable only with MATLAB, or by people also comfortable with web techno |