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.claude/skills/ruckus/SKILL.md
GitHubRuckus 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 executionRuckus/Backend.swift— Auto-generated Swift RPC client (do not edit)Ruckus/Backend/Backend+shared.swift— Shared Backend singletonProject.swift— Tuist project definitionTuist/Package.swift— Swift package dependencies (Noise from../../Noise/, OpenSSL)