Running Tests
Steno core logic is tested from the Swift package.
Run all tests:
cd StenoKit
CLANG_MODULE_CACHE_PATH=/tmp/steno-clang-cache \
SWIFT_MODULECACHE_PATH=/tmp/steno-swift-cache \
swift test
Run a focused test by name:
cd StenoKit
CLANG_MODULE_CACHE_PATH=/tmp/steno-clang-cache \
SWIFT_MODULECACHE_PATH=/tmp/steno-swift-cache \
swift test --filter budgetGuardDegradedMode
Coding Standards
Contribution standards from source guidelines:
- Swift 6 strict concurrency discipline
- protocol-first design for core services
- no force unwraps in production logic
- no singleton shortcuts for mutable core state
- accessibility labeling for interactive UI controls
- reduce motion support for animations
For UI consistency in app target, use StenoDesign tokens rather than hardcoded visual values.
Pull Request Checklist
Before opening a PR:
- code builds cleanly
- relevant
swift testchecks pass - new logic includes tests in
StenoKit/Tests - permission-sensitive changes are manually validated
project.ymlupdates are followed byxcodegen generate- commit messages are clear and scoped
Contribution Paths
High-impact contribution areas:
- insertion reliability for more app classes
- cleanup quality improvements for local mode
- documentation and troubleshooting improvements
- performance profiling and benchmark tooling
Start with a small, reproducible issue and include validation steps in your PR description.