bundled-skills/macos-menubar-tuist-app/SKILL.md
Build, refactor, or review SwiftUI macOS menubar apps that use Tuist.
npx skillsauth add FrancoStino/opencode-skills-antigravity 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.
development
Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.
development
Passive income portfolio analysis — activate when user asks about dividend yields, Treasury rates, REIT income, monthly passive income goals, or portfolio yield optimization. Scans 4 asset classes, ranks by risk-adjusted return, and builds allocations targeting a specific monthly income.
devops
End-to-end production QA, build verification, and launch-readiness checklist for fullstack Next.js apps. Covers TypeScript, linting, tests, build, SEO tags, route regression, and sitemap validation.
development
Safe production cleanup and hardening for vibe-coded fullstack apps (Next.js, React, Node.js, etc.). Removes dead imports, unused files, and broken references without breaking routes or APIs.