skills/macos-menubar-tuist-app/SKILL.md
Build, refactor, or review SwiftUI macOS menubar apps that use Tuist.
npx skillsauth add ranbot-ai/awesome-skills macos-menubar-tuist-appInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
LSUIElement = true by default.@Observable or equivalent), not in row/view presentation code.tuist run is unreliable for macOS target/device resolution.tuist xcodebuild build over raw xcodebuild in local run scripts when building generated projects.Use this placement by default:
Project.swift: app target, settings, resources, Info.plist keysSources/*Model*.swift: API/domain models and decodingSources/*Client*.swift: requests, response mapping, transport concernsSources/*Store*.swift: observable state, refresh policy, filtering, cachingSources/*Menu*View*.swift: menu composition and top-level UI stateSources/*Row*View*.swift: row rendering and lightweight interactionsrun-menubar.sh: canonical local restart/build/launch pathstop-menubar.sh: explicit stop helper when neededTuist.swift and Project.swift (or workspace manifests) exist.curl to verify endpoint shape, auth requirements, and pagination behavior.limit/page, implement full-list handling with local trimming in the store.App or menu scene declarations.tuist generate --no-open when generation is required.TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build ... instead of invoking raw xcodebuild directly.Run validations after edits:
TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build -scheme <TargetName> -configuration Debug
If launch workflow changed:
./run-menubar.sh
If shell scripts changed:
bash -n run-menubar.sh
bash -n stop-menubar.sh
./run-menubar.sh
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.
tools
Use when a user asks to mine or update a private, evidence-backed work profile from local Claude Code, Codex, Copilot CLI, or OpenCode sessions.
data-ai
Use when diagnosing Android overheating, idle heat, thermal throttling, charging or radio heat, or abnormal battery drain with read-only ADB evidence and approval gates.
research
Research public competitor ads, analyze creative patterns and landing pages, and produce an evidence-labeled strategic teardown.
tools
Compiled CLI covering all 52 endpoints of the Anytype local API — objects, properties, tags, search, chat, files — one binary, no MCP server needed.