Files
scarf/CONTRIBUTING.md
T
Alan Wizemann d2a447fcc4 docs: add GitHub wiki + scripts/wiki.sh helper with secret-scan
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>
2026-04-20 15:32:47 -07:00

1.9 KiB

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.

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