mirror of
https://github.com/awizemann/scarf.git
synced 2026-05-10 10:36:35 +00:00
d2a447fcc4
Public docs now live at https://github.com/awizemann/scarf/wiki (separate git repo cloned to .wiki-worktree/, mirroring the .gh-pages-worktree/ pattern). Internal dev notes stay in scarf/docs/. scripts/wiki.sh wraps pull/commit/push with a two-pass secret-scan: hard patterns (token regexes + private-key headers + a user-maintained scripts/wiki-blocklist.txt) abort with non-zero exit; soft assignment patterns (api_key=…, password=…, token=…) warn and require --force-terms. CLAUDE.md gains a Wiki section listing the update triggers (new feature, new service, architecture change, Hermes version bump, full release, keyboard/sidebar change) and the workflow. CONTRIBUTING.md points external contributors at the wiki Edit button or a direct clone. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 KiB
Contributing to Scarf
Thanks for your interest in contributing to Scarf.
Getting Started
- Fork and clone the repo
- Open
scarf/scarf.xcodeprojin Xcode 26.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:
@MainActordefault isolation,nonisolatedfor service methods.
Documentation
Public docs live in the GitHub wiki. Small fixes (typos, clarifications) can be made via the "Edit" button on any wiki page — you need push access to the main repo. For larger changes, clone the wiki locally (git clone git@github.com:awizemann/scarf.wiki.git) or open an issue describing the proposed change.
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