PhreeLabsStart a Project

Work / 008

ProofRivet

Know what was claimed, what was tested, and what you accepted. ProofRivet runs real checks on a recorded build, marks evidence stale when watched files change, and refuses to accept a requirement that is not tested.

Type
Verification App
Platform
macOS 14 or Later
Built With
Swift, SwiftUI, AppKit
Status
In Development · Version 0.1.0
Role
Founder: product direction, design, and testing
ProofRivet on macOS showing a synthetic sample project: five requirements with the files they watch and statuses including Accepted with evidence that may be stale, Tested, Claimed Complete but not tested, Not Tested, and Failing.
Requirements · App screenshot of version 0.1.0 · Synthetic sample project

01 Purpose

ProofRivet keeps Claimed Complete, Tested, and Accepted apart for a software project, and produces a handoff report an owner can read.

Intended user: a project owner checking work from developers or development agents.

02 Problem and Constraints

A developer or agent can report a project complete while the owner still cannot tell which requirements were tested against which build, or what changed afterward.

  • Work claims are kept, but they never count as evidence.
  • Accept is refused unless passing evidence holds for the recorded current build.
  • Git is read only. ProofRivet never commits, checks out, resets, or pushes.
  • Anything that cannot be compared counts as changed, so unknown never reads as tested.

03 What Was Built

  • Screens for Projects, Status Board, Requirements, Requirement, Checks and Runs, Work Claims, Manual Evidence, Changes, and Handoff.
  • Requirements that list the files they depend on.
  • Checks that run as real commands in the project’s git working copy with your login shell. Each run records the build (the commit plus a fingerprint of uncommitted changes), the exit code, the time, and a SHA-256 of the output.
  • Stale evidence: when later changes touch a requirement’s watched files, its evidence and any acceptance are marked stale.
  • A Markdown handoff report listing what is failing, only claimed, never checked, and made stale.
  • A synthetic sample project in its own throwaway git folder. ProofRivet refuses to replace any folder that is not marked as its sample.

04 Design and Engineering Decisions

  1. 01

    Native, No Web View

    SwiftUI and AppKit in one Swift package, with no third-party packages.

  2. 02

    Claims Are Not Evidence

    What someone said is kept and shown, but only a recorded check or manual evidence can make a requirement Tested.

  3. 03

    Verification Changes Nothing

    Git is used read only, so checking the code never alters the code being checked.

  4. 04

    Conservative Staleness

    Evidence holds only while the requirement’s watched files are unchanged; builds that cannot be compared count as changed.

  5. 05

    Newest Applicable Run Decides

    For each check, the newest run that still applies to the current code decides whether it is failing.

05 Architecture

SwiftUI appStatus Board, Requirements, Checks, Handoff
RulesEvidence, staleness, acceptance
Shared storeAtomic writes, previous version kept, newer files refused
library.jsonYour real data, on this Mac
Git working copyRead only: build, status, and changes
Nothing leaves the Mac on its own. The sample library and the test files are kept apart from your real library.

06 Verified Results

MeasureResultContext
Release buildBuilt with no compile errorsSwift release build, 4 November 2026, on the Mac
Headless self-test11 of 11 passingRules and storage checked on throwaway files, same run
Window interface test20 of 20 passingA real window, every screen, with button presses through the accessibility tree, same run
Normal launchOpened, ran, and quit cleanlyNo real library file was created
Hand click-throughNot yet doneForms were exercised through the same model calls they make, not typed into by a person
ProofRivet’s Checks and Runs screen in the synthetic sample: three command checks with their last result on a recorded build, two passed and one failed.
Checks and runs · App screenshot · Synthetic sample project

07 Third-Party Components

None. ProofRivet is built with Apple’s Swift, SwiftUI, and AppKit, with no third-party packages, no web view, and no network access.

Need Something
Like This?

Tell me what the software should do. Similar problems are a good place to start. Native tools built around your own rules, like this one, are part of Custom Software.

Next Project
Explainer Studio