A complete SwiftUI app for audits, quality walks and safety checks. Offline-first, template-driven, with severity-weighted scoring, a history trend and Markdown/CSV export.
Paper checklists get lost, and most audit software is built for the people who read reports, not the person walking the floor with a phone in one hand. AuditPocket is built for the walking part — and for the five minutes after, when the report has to go out.
- Templates as code — Safety walk, 5S, Quality gate, Receiving
inspection, or start blank. Templates live in
Templates.swift; changing your standard checklist is a code review, not a settings hunt. - Severity-weighted scoring — checks are Minor (1×), Major (3×) or Critical (6×). One failed critical check hurts more than six minor passes can repair. Undecided checks don't count either way, so the score is honest mid-walk too.
- One-tap status cycling — Open → Pass → Watch → Fail. The whole point is speed with one hand.
- Findings first — the export puts failures (sorted by severity, with owner and note) before the full checklist, because that's the part anyone actually reads.
- History — score trend across closed audits (Swift Charts), red dots where critical findings happened.
- Export — Markdown for email/tickets, CSV for the people who will inevitably ask for Excel. RFC 4180 escaping, tested.
- SwiftData persistence — audits survive restarts; deleting an audit cascades to its items.
Sources/AuditPocket/
├── Models/ Audit, AuditItem, status/severity + scoring rules
├── Services/ Templates, exporters, sample data
└── Views/ List, detail, item editor, new-audit sheet,
history chart, export sheet, theme
Tests/ Scoring, CSV escaping, exports, templates (12 tests)
Views render state, models own the rules, services do the one-off work. The scoring logic is on the model and fully unit-tested — that's the part that must never silently change.
Needs iOS 17 / macOS 14 (SwiftData, @Observable-era APIs).
swift test # runs the logic testsOpen the package in Xcode for the previews (list, detail and history all
have #Previews backed by an in-memory container), or drop
Sources/AuditPocket/ into an app target and add @main to
AuditPocketApp. First launch offers demo data so you can look around.
MIT