ruckus

Use when building, testing, or linting the Ruckus iOS app, regenerating the Tuist project, running tests, or adding new Swift files. Covers xcodebuild, tuist, make, swiftlint, and test workflows.

SKILL.md

GitHub

Ruckus Build, Test, Lint & Tuist

Build

Build from the command line:

xcodebuild -workspace Ruckus.xcworkspace -scheme Ruckus -destination 'generic/platform=iOS' build

To check for warnings, use clean build — incremental builds skip unchanged files and won't re-emit their warnings:

xcodebuild clean build -workspace Ruckus.xcworkspace -scheme Ruckus -destination 'generic/platform=iOS'

A pre-build script in Project.swift runs make automatically before compiling. This regenerates Backend.swift and res/core.zo from Racket source. No need to run make manually before building.

Tests

Run tests with xcodebuild using the workspace (not the project):

xcodebuild test -workspace Ruckus.xcworkspace -scheme Ruckus \
  -destination 'platform=iOS Simulator,name=iPhone 17 Pro'

To run a specific test class:

xcodebuild test -workspace Ruckus.xcworkspace -scheme Ruckus \
  -destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
  -only-testing RuckusTests/ClassName

The workspace is required because it includes external dependencies (Noise, Runestone, TreeSitter). The project alone can't resolve them.

Tuist

After modifying Project.swift, run:

tuist generate --no-open

When adding or removing Swift files, regenerate the project so Xcode picks them up. Tuist auto-globs all .swift files — no need to edit Project.swift for new files.

Linting

Always run after modifying Swift files:

swiftlint lint

Fix any violations before finishing.

Swift Configuration

  • iOS 26.0+ deployment target
  • Swift 6.0 (strict concurrency by default)

Key Files

  • Ruckus/racket — Vendored Racket libraries and environment config for runtime execution
  • Ruckus/Backend.swift — Auto-generated Swift RPC client (do not edit)
  • Ruckus/Backend/Backend+shared.swift — Shared Backend singleton
  • Project.swift — Tuist project definition
  • Tuist/Package.swift — Swift package dependencies (Noise from ../../Noise/, OpenSSL)