mirror of
https://github.com/awizemann/scarf.git
synced 2026-05-08 02:14:37 +00:00
50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
|
|
# Contributing to Scarf
|
||
|
|
|
||
|
|
Thanks for your interest in contributing to Scarf.
|
||
|
|
|
||
|
|
## Getting Started
|
||
|
|
|
||
|
|
1. Fork and clone the repo
|
||
|
|
2. Open `scarf/scarf.xcodeproj` in Xcode 26.3+
|
||
|
|
3. Build and run (requires macOS 26.2+ and Hermes installed at `~/.hermes/`)
|
||
|
|
|
||
|
|
## Architecture
|
||
|
|
|
||
|
|
Scarf uses the MVVM-Feature pattern. Each feature is a self-contained module under `Features/`:
|
||
|
|
|
||
|
|
```
|
||
|
|
Features/FeatureName/
|
||
|
|
Views/ SwiftUI views
|
||
|
|
ViewModels/ @Observable view models
|
||
|
|
```
|
||
|
|
|
||
|
|
Rules:
|
||
|
|
- Features never import sibling features directly
|
||
|
|
- Cross-feature navigation goes through `AppCoordinator`
|
||
|
|
- Services in `Core/Services/` are shared across features
|
||
|
|
- Models in `Core/Models/` are plain structs
|
||
|
|
|
||
|
|
## Guidelines
|
||
|
|
|
||
|
|
- Keep it simple. Minimal dependencies, no over-engineering.
|
||
|
|
- No commented-out code, TODOs, or deferred functionality in PRs.
|
||
|
|
- All code must build with zero warnings.
|
||
|
|
- Follow existing patterns — look at how similar features are built before adding new ones.
|
||
|
|
- The app only reads from `~/.hermes/state.db` (never writes). Memory files are the exception.
|
||
|
|
- Swift 6 strict concurrency: `@MainActor` default isolation, `nonisolated` for service methods.
|
||
|
|
|
||
|
|
## Reporting Issues
|
||
|
|
|
||
|
|
Open an issue with:
|
||
|
|
- What you expected to happen
|
||
|
|
- What actually happened
|
||
|
|
- macOS version and Hermes version
|
||
|
|
- Steps to reproduce
|
||
|
|
|
||
|
|
## Pull Requests
|
||
|
|
|
||
|
|
- Open an issue first to discuss the change
|
||
|
|
- One feature or fix per PR
|
||
|
|
- Include a clear description of what changed and why
|
||
|
|
- Ensure the project builds with `xcodebuild -project scarf/scarf.xcodeproj -scheme scarf build`
|