CLI commits scoped to intended paths

Every `git commit` in the CLI commits the entire staging index, not the specific files it staged. Pre-existing staged changes from other sessions, manual operations, or concurrent pipeline work leak into unrelated commits. Observed: `work complete commit-work-start-timestamps` (commit `bb2ee1f`) swept `polish-scan-copy`'s staged deletions into its commit — files from a different work item deleted by a different terminal session. The user wants every CLI commit to contain exactly what was intended.

verdict PASSscore 14 / 14findings 5 (0 risk · 1 debt · 4 obs)duration 21h 59mrejection cycles 0shipped May 10, 2026

Pipeline timeline

Intent to proven code in 21h 59m across Think, Plan, Build, and Verify.

Think
17m
Plan
10m
Build
7m
Verify
4m

Assertion ledger

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

IDSaysMatcher
A001The work complete commit only contains the files it intended to stageverifiedok
A002Pre-existing staged files remain staged after a scoped commitverifiedok
A003The work complete commit includes the archived plan directoryverifiedok
A004The work complete commit includes the proof chainverifiedok
A005The single artifact save commit uses scoped pathspecsverifiedok
A006The multi artifact save commit uses scoped pathspecsverifiedok
A007The single artifact diff check uses scoped pathspecsverifiedok
A008The multi artifact diff check uses scoped pathspecsverifiedok

Findings 5 total

debtpackages/cli/tests/commands/work.test.tsclosed
No integration tests for artifact.ts or proof.ts scoped commit sites — 9 of 14 assertions verified by source inspection only
obspackages/cli/src/commands/artifact.tsclosed
git commit -- uses --only semantics (working tree, not index) — safe because git add and commit are adjacent synchronous calls, but undocumented assumption
obspackages/cli/src/commands/artifact.tsclosed
Site 2 stages plan.md with absolute path via runGit but tracks relative path in stagedPaths — works correctly but mixed path convention
obspackages/cli/tests/commands/work.test.tsclosed
Test uses toContain('completed/') for path matching — works in controlled test but would false-positive if any other path contained 'completed/'
obsclosed
commitSaves silently swallows commit failures — pre-existing, still present (see proof context)

Integrity seal

scopesha256:a7026c5b9f90c...
contractsha256:49b4b2dc0b2e7...
plansha256:71d051f7260e7...
specsha256:f5146bd855dff...
build-reportsha256:bfc54376fe22e...
build-datasha256:64c888b6fb815...
verify-reportsha256:2bf986c9b3811...
verify-datasha256:886bf3ff3884e...
audit cmd$ ana proof audit scoped-cli-commits   → all hashes match