---
name: bama
description: Build any Mac app. Start here to pick the next skill for a native macOS app.
disable-model-invocation: true
---

# Build any Mac app

Find where the user is on the path below, then call the Skill tool with the
skill for that step. One skill per call.

```text
idea -> research -> clone (optional) -> app-brief -> user-stories -> new-mac-app
     -> mac-design + design-system + app-icon -> improve-loop (ux, code, design, verify, commit) -> repeat
```

Pick the app's name first (app-brief, step 1) and create
`<parent>/<AppName>/docs/` before research, so every skill writes into the
same folder. Design comes right after the scaffold: tokens from the first
view, and the real icon in every snapshot.

## Plan

| The user has | Skill |
| --- | --- |
| A vague idea, or asks "what should I build" | `research`, then `app-brief` |
| An app they want to replace or rebuild | `clone` |
| A brief or a screen index, no backlog | `user-stories` |
| A spec from BAMA's `specs/` folder | `app-brief` (it copies the spec) |

## Build

| The user wants to | Skill |
| --- | --- |
| Start a new project | `new-mac-app` |
| Write or fix Swift and SwiftUI code | `swift-swiftui` |
| Hook into macOS: hotkeys, menu bar, windows, screen capture, Shortcuts | `os-integrations` |
| Make it fast: hangs, stutter, GPU, video, memory | `performance` |
| Let Claude Code, Codex, or scripts drive the app: a CLI, an MCP server | `agent-cli` |
| Refactor, clean up, or check the code as it grows | `improve-architecture` |

## Design

| The user wants to | Skill |
| --- | --- |
| Decide how a feature works and what it says: names, flow, modals, accessibility | `ux-design` |
| Make it look and feel like a Mac app | `mac-design` |
| An accent or brand color, a color picker, tokens | `design-system` |
| Their own parts and feel, not Apple's: buttons, rows, sidebar, icons | `design-kit` |
| The look of an app they name, or screenshots of one | `design-from-app` |
| One set of colors, radii, motion, and controls for the whole app | `design-system` |
| Fix spacing and alignment, or check the layout on the grid | `layout-grid` |
| An app icon | `app-icon` |

## Ship

| The user wants to | Skill |
| --- | --- |
| Build it and look at every page | `build-and-verify` |
| Tests, a self-test, or an agent that drives the running app | `test-mac-app` |
| Work through the backlog on its own | `improve-loop` |

## Done when

You named the step, called its skill, and told the user which skill comes
after it.
