Commit timestamps written by work start

`ana work start` writes timestamps to `.saves.json` on the artifact branch without committing, creating dirty tracked state that blocks `git pull --rebase` for concurrent pipeline work. The user wants this fixed — it caused a confirmed failure during concurrent work on 2026-05-07 and is a recurring friction source. Secondary: comments and messages in the affected files say "main" when they mean "artifact branch," which is misleading for customers using a different artifact branch name.

verdict PASSscore 14 / 14findings 5 (0 risk · 1 debt · 4 obs)duration 2h 17mrejection cycles 0shipped May 9, 2026surface cli

Pipeline timeline

Intent to proven code in 2h 17m across Think, Plan, Build, and Verify.

Think
38m
Plan
4m
Build
6m
Verify
5m

Assertion ledger

14 claims, each independently verified. Showing 8 — show all →

IDSaysMatcher
A001Starting a new work item commits the timestamp to the artifact branchverifiedok
A002The start-work commit message identifies the slugverifiedok
A003The start-work commit includes the co-author trailerverifiedok
A004Starting a plan phase commits the timestamp to the artifact branchverifiedok
A005The plan-phase commit message identifies the phaseverifiedok
A006The plan-phase commit includes the co-author trailerverifiedok
A007Repeating work start for the same phase does not create an empty commitverifiedok
A008Repeating work start for the same phase does not errorverifiedok

Findings 5 total

debtpackages/cli/tests/commands/work.test.tsscope
A010 test creates untracked file after commit — doesn't test scoped staging during commit
obspackages/cli/src/commands/work.tsclosed
commitSaves silently swallows commit failures — index.lock or other git errors invisible to user
obspackages/cli/tests/commands/work.test.tsclosed
A011 no-push test relies on absence of remote as indirect proof — no spy or mock verifying git push not called
obspackages/cli/src/commands/work.tsclosed
commitSaves mixes runGit (throws) and spawnSync (returns status) for git operations — works correctly but inconsistent API usage
obsclosed
Race condition in writeTimestamp still present — read-modify-write on .saves.json is not atomic (pre-existing, from Fix Pipeline Phase Timing)

Integrity seal

scopesha256:5ea1b779fa680...
contractsha256:586072a4fe4a9...
plansha256:d4f06da5a769c...
specsha256:6b72ea8141b56...
build-reportsha256:bc82a09605ab5...
build-datasha256:bdfbaade08eef...
verify-reportsha256:ff824ac36f46a...
verify-datasha256:5f7479454c187...
audit cmd$ ana proof audit commit-work-start-timestamps   → all hashes match