Documentation

Testing and Contributing

Run tests, follow coding standards, and submit quality pull requests.

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 test checks pass
  • new logic includes tests in StenoKit/Tests
  • permission-sensitive changes are manually validated
  • project.yml updates are followed by xcodegen 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.