Unified Staleness Awareness

The system generates project intelligence (scan.json) and tracks version currency, but has no mechanism to detect when that intelligence is drifting — and even existing notifications (npm updates, version mismatch) can be buried in tool output that the Ana agent may or may not relay. Both problems must be fixed together: adding scan staleness detection without fixing the relay problem means the new notification gets buried the same way existing ones do.

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

Pipeline timeline

Intent to proven code in 1h 15m across Think, Plan, Build, and Verify.

Think
30m
Plan
16m
Build
9m
Verify
6m

Assertion ledger

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

IDSaysMatcher
A001Stale scan triggers a notification with age and commit countverifiedok
A002Staleness requires both time AND commit thresholds to be metverifiedok
A003Staleness requires both time AND commit thresholds to be metverifiedok
A004Unresolvable git SHA falls back to time-only notificationverifiedok
A005Time-only fallback still detects staleness by age aloneverifiedok
A006CI environments never see staleness warningsverifiedok
A007Missing scan date is handled gracefully without crashingverifiedok
A008Unparseable scan date is handled gracefully without crashingverifiedok

Findings 4 total

debtpackages/cli/src/commands/check.tsmonitor
Freshness section shows 'current' when scan data is unavailable (null result)
obswebsite/lib/copy.tsclosed
Unrelated website pricing change included in feature branch
debtpackages/cli/tests/utils/scan-freshness.test.tsmonitor
No integration tests for output/JSON assertions — unit tests + source inspection chain only
obspackages/cli/src/utils/scan-freshness.tsclosed
daysSinceScan uses Math.floor — scan exactly 7.9 days old shows as 7, not stale

Integrity seal

scopesha256:95b7c953d85b1...
contractsha256:00512cbdd4604...
plansha256:1959fd7972759...
specsha256:05ee56e4e70e8...
build-reportsha256:3a28394a06d90...
build-datasha256:aed0746c41d86...
verify-reportsha256:38fef33fa84af...
verify-datasha256:16f83deeaf2a3...
audit cmd$ ana proof audit unified-staleness-awareness   → all hashes match