A macOS utility to track home-manager JJ repo status

Add Tangled CI lint workflow for formatting checks

Add a Spindle pipeline that checks formatting on push to main and on
pull requests. Since the app is macOS-only (Swift + AppKit/SwiftUI),
we can't build or test on Linux CI, but we can verify formatting.

The workflow invokes swift-format, nixfmt, and shfmt directly with
flags matching the treefmt-nix configuration from flake.nix. The
treefmt config reference is documented in the file header so the two
stay in sync.

Steps:
- swift-format lint --strict --recursive on Sources/, Tests/, Package.swift
- nixfmt --check on all tracked *.nix files (via git ls-files)
- shfmt -d -i 2 -s on scripts/

+30
+30
.tangled/workflows/lint.yml
··· 1 + # Formatting checks — mirrors the treefmt config from flake.nix 2 + # Tools are invoked directly because nix fmt requires darwin systems. 3 + # 4 + # treefmt config reference (from nix build .#formatter.<system>): 5 + # nixfmt: includes=["*.nix"], options=[] 6 + # shfmt: includes=["*.sh","*.bash","*.envrc","*.envrc.*"], options=["-w","-i","2","-s"] 7 + # swift-format: includes=["*.swift"], options=["-i"] 8 + 9 + when: 10 + - event: ["push"] 11 + branch: ["main"] 12 + - event: ["pull_request"] 13 + branch: ["main"] 14 + 15 + engine: "nixery" 16 + 17 + dependencies: 18 + nixpkgs: 19 + - swift-format 20 + - nixfmt-rfc-style 21 + - shfmt 22 + - git 23 + 24 + steps: 25 + - name: "Lint Swift formatting" 26 + command: "swift-format lint --strict --recursive Sources/ Tests/ Package.swift" 27 + - name: "Check Nix formatting" 28 + command: "git ls-files '*.nix' | xargs nixfmt --check" 29 + - name: "Check Shell formatting" 30 + command: "shfmt -d -i 2 -s scripts/"