Fix Gantt Bar Distortion and Document Timing

The pipeline Gantt chart on proof detail pages inflates the last bar to absorb idle time between phases. A proof with 21 minutes of active pipeline time and 129 minutes wall-clock shows Verify at 86% width instead of 14%. This affects 24% of all proof entries (13 severe, 11 moderate). Separately, the docs don't explain what timing measures or why duration can exceed the sum of phases — users see "2h 9m" in the header and "21m" in the bars and have no way to reconcile them.

verdict PASSscore 15 / 15findings 4 (0 risk · 1 debt · 3 obs)duration 24mrejection cycles 0shipped May 15, 2026surface website

Pipeline timeline

Intent to proven code in 24m across Think, Plan, Build, and Verify.

Think
5m
Plan
4m
Build
4m
Verify
4m

Assertion ledger

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

IDSaysMatcher
A001Gantt bars show time proportional to each phase, not inflated by idle gapsverifiedok
A002The sentinel that forced the last bar to 100% is removedverifiedok
A003The sentinel is also removed from the flat 4-bar pathverifiedok
A004A proof with 13m/2m/3m/3m shows Verify at roughly 14%, not 86%verifiedok
A005The same proof shows Think at roughly 62%verifiedok
A006Multi-phase proofs render last segment proportionally, not inflatedverifiedok
A007Zero-duration phases still get a minimum visible widthverifiedok
A008When all phases are zero, no bars are rendered regardless of wall-clock timeverifiedok

Findings 4 total

obswebsite/components/docs/proof/PipelineGantt.tsxmonitor
Negative phase values display raw in bar label while bar width is clamped
debtwebsite/components/docs/proof/PipelineGantt.tsxclosed
buildGanttBars and GanttBar exported but only consumed within PipelineGantt.tsx
obswebsite/components/docs/proof/PipelineGantt.tsxclosed
formatDuration defined but unused in PipelineGantt — pre-existing, still present
obswebsite/components/docs/proof/PipelineGantt.tsxmonitor
Zero-duration bars get minimum 2% width that can push cumulative past 100% if many zero-duration phases exist

Integrity seal

scopesha256:e844acbc9283b...
contractsha256:502a340637ce1...
plansha256:e7dc0d05b5ff4...
specsha256:ab2c94a8c8be1...
build-reportsha256:88be7fc8a99c2...
build-datasha256:7b7fe5f4f09e1...
verify-reportsha256:ac0f477cc6aa8...
verify-datasha256:63d95bcd44173...
audit cmd$ ana proof audit fix-gantt-bar-distortion   → all hashes match