К основному содержанию
скилл CX Codex

macos-menubar-tuist-app — скилл для Claude Code: менюбар-приложения

Скилл для сборки и правки macOS-приложений в строке меню на Tuist и SwiftUI. Пригодится, когда нужно держать сеть, состояние и UI по разным слоям.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Dimillian/Skills --skill macos-menubar-tuist-app -a claude-code
Открыть на GitHub

Что делает macos-menubar-tuist-app

Скилл задаёт правила для менюбар-утилит: приложение остаётся menubar-only, если не сказано иначе, а LSUIElement ставится в true. Сетевые вызовы и разбор ответов не должны жить внутри SwiftUI-вью, переходы состояния — в store-слое вроде @Observable. Манифесты Tuist считаются источником правды, править сгенерированные артефакты Xcode вручную не стоит.

Файлы раскладываются по ролям: Project.swift для таргета и настроек, отдельные файлы под модели, клиент, store и вью меню со строками. Запуск идёт через run-menubar.sh и stop-menubar.sh. Скрипт запуска перезапускает уже работающий экземпляр и не открывает Xcode заодно; при генерации используется tuist generate --no-open, а сборка — TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build вместо голого xcodebuild.

Порядок работы такой: сначала проверить, что проектом владеет Tuist, потом пощупать бэкенд через curl — форму ответа, авторизацию, пагинацию. Если эндпоинт игнорирует limit/page, скилл советует тянуть весь список и обрезать его в store. Дальше слои собираются снизу вверх: модели, клиент, store, и только потом вью. tuist run на macOS-таргете часто не может разрешить destination — тогда канонический путь запуска это скрипты.

Какие задачи решает

  • собрать менюбар-утилиту на Tuist без ручной правки сгенерированного проекта
  • вынести сеть и разбор ответов из SwiftUI-вью в отдельные слои
  • пережить изменение полей в API без падения декодинга
  • починить запуск, когда tuist run не находит macOS-таргет
  • проверить сборку и скрипты запуска после правок

Примеры запросов агенту

  • собери менюбар-приложение на Tuist: модели, клиент, store и вью меню
  • перепиши разбор ответа API так, чтобы лишние поля не ломали декодинг
  • почини run-menubar.sh, чтобы он перезапускал старый экземпляр и не открывал Xcode

Как установить macos-menubar-tuist-app

1Через Skills CLI (Vercel)

npx skills add Dimillian/Skills --skill macos-menubar-tuist-app -a claude-code

2Вручную: положить файлы

~/.claude/skills/macos-menubar-tuist-app/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/macos-menubar-tuist-app/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о macos-menubar-tuist-app

Как установить macos-menubar-tuist-app в Claude?

Выполните npx skills add Dimillian/Skills --skill macos-menubar-tuist-app -a claude-code. Скилл окажется в ~/.claude/skills/macos-menubar-tuist-app/SKILL.md.

Что делает macos-menubar-tuist-app?

Описывает сборку, рефакторинг и ревью менюбар-приложений на Tuist и SwiftUI: границы слоёв, форму файлов, скрипты запуска и проверки после правок.

Чем этот скилл отличается от обычной работы в Xcode?

Он держит Tuist-манифесты источником правды и не опирается на правку сгенерированных артефактов Xcode. Локальный запуск идёт через скрипты, а сборка — через tuist xcodebuild.

Исходный текст

SKILL.md · MIT
---
name: macos-menubar-tuist-app
description: Build, refactor, or review macOS menubar apps that use Tuist and SwiftUI. Use when creating or maintaining LSUIElement menubar utilities, defining Tuist targets/manifests, implementing model-client-store-view architecture, adding script-based launch flows, or validating reliable local build/run behavior without Xcode-first workflows.
---

# macos-menubar-tuist-app

Build and maintain macOS menubar apps with a Tuist-first workflow and stable launch scripts. Preserve strict architecture boundaries so networking, state, and UI remain testable and predictable.

## Core Rules

- Keep the app menubar-only unless explicitly told otherwise. Use `LSUIElement = true` by default.
- Keep transport and decoding logic outside views. Do not call networking from SwiftUI view bodies.
- Keep state transitions in a store layer (`@Observable` or equivalent), not in row/view presentation code.
- Keep model decoding resilient to API drift: optional fields, safe fallbacks, and defensive parsing.
- Treat Tuist manifests as the source of truth. Do not rely on hand-edited generated Xcode artifacts.
- Prefer script-based launch for local iteration when `tuist run` is unreliable for macOS target/device resolution.
- Prefer `tuist xcodebuild build` over raw `xcodebuild` in local run scripts when building generated projects.

## Expected File Shape

Use this placement by default:

- `Project.swift`: app target, settings, resources, `Info.plist` keys
- `Sources/*Model*.swift`: API/domain models and decoding
- `Sources/*Client*.swift`: requests, response mapping, transport concerns
- `Sources/*Store*.swift`: observable state, refresh policy, filtering, caching
- `Sources/*Menu*View*.swift`: menu composition and top-level UI state
- `Sources/*Row*View*.swift`: row rendering and lightweight interactions
- `run-menubar.sh`: canonical local restart/build/launch path
- `stop-menubar.sh`: explicit stop helper when needed

## Workflow

1. Confirm Tuist ownership
- Verify `Tuist.swift` and `Project.swift` (or workspace manifests) exist.
- Read existing run scripts before changing launch behavior.

2. Probe backend behavior before coding assumptions
- Use `curl` to verify endpoint shape, auth requirements, and pagination behavior.
- If endpoint ignores `limit/page`, implement full-list handling with local trimming in the store.

3. Implement layers from bottom to top
- Define/adjust models first.
- Add or update client request/decoding logic.
- Update store refresh, filtering, and cache policy.
- Wire views last.

4. Keep app wiring minimal
- Keep app entry focused on scene/menu wiring and dependency injection.
- Avoid embedding business logic in `App` or menu scene declarations.

5. Standardize launch ergonomics
- Ensure run script restarts an existing instance before relaunching.
- Ensure run script does not open Xcode as a side effect.
- Use `tuist generate --no-open` when generation is required.
- When the run script builds the generated project, prefer `TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build ...` instead of invoking raw `xcodebuild` directly.

## Validation Matrix

Run validations after edits:

```bash
TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build -scheme <TargetName> -configuration Debug
```

If launch workflow changed:

```bash
./run-menubar.sh
```

If shell scripts changed:

```bash
bash -n run-menubar.sh
bash -n stop-menubar.sh
./run-menubar.sh
```

## Failure Patterns and Fix Direction

- `tuist run` cannot resolve the macOS destination:
Use run/stop scripts as canonical local run path.

- Menu UI is laggy or inconsistent after refresh:
Move derived state and filtering into the store; keep views render-only.

- API payload changes break decode:
Relax model decoding with optional fields and defaults, then surface missing data safely in UI.

- Feature asks for quick UI patch:
Trace root cause in model/client/store before changing row/menu presentation.

## Completion Checklist

- Preserve menubar-only behavior unless explicitly changed.
- Keep network and state logic out of SwiftUI view bodies.
- Keep Tuist manifests and run scripts aligned with actual build/run flow.
- Run the validation matrix for touched areas.
- Report concrete commands run and outcomes.

© Dimillian · MIT · Dimillian/Skills

Похожие скиллы

Всё по теме «Мобильная разработка» →
macos-development rshankras Скилл для разработки приложений под macOS: Swift 6+, SwiftUI, SwiftData, AppKit и API macOS 26 Tahoe. Пригодится на код-ревью и разборе архитектуры. CX Codex +1 1 600установок axiom-macos CharlesWiltgen Скилл для macOS-разработки: окна, меню, песочница, распространение, мосты в AppKit и различия SwiftUI на Mac. CX Codex +1 1 300установок build-macos-apps официальный OpenAI Плагин для Codex с набором скиллов под разработку локальных macOS-приложений: сборка, запуск, тесты, подпись и логирование. CX Codex GP ChatGPT ★ 7 596звёзд репо macos-settings-ui fayazara Собирает окно настроек для нативного macOS-приложения на SwiftUI: сайдбар, панели с Form и стеклянная отделка окна в духе macOS 26. CX Codex +1 650установок macos-design-guidelines platform-design-skills Скилл передаёт агенту правила Apple Human Interface Guidelines для macOS. Он пригодится при вёрстке меню, окон и клавиатурных сокращений на SwiftUI или AppKit. CX Codex +1 4 300установок clerk-swift clerk Собирает экраны входа Clerk в нативных приложениях iOS и macOS: готовые вью ClerkKitUI или свои сценарии на ClerkKit. CX Codex +1 14 500установок

Из того же набора11

app-store-changelog Собирает коммиты с последнего тега и превращает их в текст «What's New» для App Store. Пригодится перед каждой выкладкой в стор. CX Codex +1 1 300установок react-component-performance Находит причины медленного рендера в React, изолирует часто обновляемый стейт и убирает лишние вычисления. Помогает при лагах списков и анимаций. CX Codex +1 1 100установок github Даёт агенту команды утилиты gh CLI для работы с задачами, пулл-реквестами и запусками CI прямо из терминала. CX Codex +1 870установок review-and-simplify-changes Разбирает изменённый код на переиспользование, качество, эффективность и ясность, а потом по желанию вносит безопасные правки. Пригодится перед коммитом. CX Codex +1 794установок project-skill-audit Анализирует прошлые сессии Codex, файлы памяти и локальные навыки проекта. Рекомендует обновить устаревшие инструкции или создать новые под частые задачи. CX Codex +1 785установок review-swarm Проводит параллельное ревью git-диффа или выбранных файлов без изменений в рабочей копии. Нужен для поиска регрессий, рисков безопасности и пробелов в тестах. CX Codex +1 756установок bug-hunt-swarm Ищет первопричину багов параллельно через субагентов и ранжирует версии. Нужен для регрессий, сбоев и нестабильного поведения без правок кода. CX Codex +1 713установок orchestrate-batch-refactor Скилл разбивает крупный рефакторинг на независимые рабочие пакеты и координирует субагентов. Нужен, когда затронуто много файлов или подсистем. CX Codex +1 688установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой