Evidence Freshness Management
Manages evidence freshness by identifying stale decisions and providing governance actions. Implements FPF B.3.4 (Evidence Decay).
Key principle: Evidence is perishable. Decisions built on expired evidence carry hidden risk.
Quick Concepts
What is "stale" evidence?
Every piece of evidence has a valid_until date. A benchmark from 6 months ago may no longer reflect current system performance. A security audit from before a major dependency update doesn't account for new vulnerabilities.
When evidence expires, the decision it supports becomes questionable - not necessarily wrong, just unverified.
What is "waiving"?
Waiving = "I know this evidence is stale, I accept the risk temporarily."
Use it when:
- You're about to launch and don't have time to re-run all tests
- The evidence is only slightly expired and probably still valid
- You have a scheduled date to refresh it properly
A waiver is NOT ignoring the problem - it's explicitly documenting that you know about the risk and accept it until a specific date.
The Three Actions
Action (Run-Time)
Step 1: Generate Freshness Report
- List all evidence files in
.fpf/evidence/ - For each evidence file:
- Read
valid_untilfrom frontmatter - Compare with current date
- Classify as FRESH, STALE, or EXPIRED
- Read
Step 2: Present Report
Step 3: Handle User Actions
Based on user response, perform one of:
Refresh
User: "Refresh the redis caching evidence"
- Navigate to the hypothesis in
.fpf/knowledge/L2/ - Re-run validation to create fresh evidence
Deprecate
User: "Deprecate the auth module decision"
- Move hypothesis from L2 to L1 (or L1 to L0)
- Create deprecation record:
- Move the hypothesis file:
Waive
User: "Waive the benchmark until February"
- Create waiver record:
Natural Language Usage
You don't need to memorize evidence IDs. Just describe what you want.
Example Workflow
WLNK Principle
A hypothesis is STALE if any of its evidence is expired (and not waived).
This is the Weakest Link (WLNK) principle: reliability = min(all evidence). One stale piece makes the whole decision questionable.
Audit Trail
All actions are logged:
Files created in .fpf/evidence/:
deprecate-{hypothesis}-{date}.mdwaiver-{evidence}-{date}.md

