decay
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseEvidence 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.
通过识别过时决策并提供治理操作来管理证据时效性。实现了FPF B.3.4(Evidence Decay)标准。
核心原则:证据具有时效性。基于过期证据做出的决策存在潜在风险。
Quick Concepts
快速概念
What is "stale" evidence?
什么是“过时”证据?
Every piece of evidence has a 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.
valid_untilWhen evidence expires, the decision it supports becomes questionable - not necessarily wrong, just unverified.
每一份证据都有一个日期。6个月前的基准测试结果可能无法反映当前系统性能。重大依赖更新前的安全审计无法覆盖新出现的漏洞。
valid_until当证据过期时,它所支持的决策就会变得存疑——不一定是错误的,只是未经验证。
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
三种操作
| Situation | Action | What it does |
|---|---|---|
| Evidence is old but decision is still good | Refresh | Re-run the test, get fresh evidence |
| Decision is obsolete, needs rethinking | Deprecate | Downgrade hypothesis, restart evaluation |
| Accept risk temporarily | Waive | Record the risk acceptance with deadline |
| 场景 | 操作 | 作用 |
|---|---|---|
| 证据已过时但决策仍然有效 | 更新 | 重新运行测试,获取新证据 |
| 决策已过时,需要重新考量 | 弃用 | 降级假设,重启评估流程 |
| 暂时接受风险 | 豁免 | 记录风险接受情况及截止日期 |
Action (Run-Time)
运行时操作
Step 1: Generate Freshness Report
步骤1:生成时效性报告
- List all evidence files in
.fpf/evidence/ - For each evidence file:
- Read from frontmatter
valid_until - Compare with current date
- Classify as FRESH, STALE, or EXPIRED
- Read
- 列出目录下的所有证据文件
.fpf/evidence/ - 针对每个证据文件:
- 从文件头读取字段
valid_until - 与当前日期对比
- 分类为FRESH(有效)、STALE(即将过期)或EXPIRED(已过期)
- 从文件头读取
Step 2: Present Report
步骤2:展示报告
markdown
undefinedmarkdown
undefinedEvidence Freshness Report
证据时效性报告
EXPIRED (Requires Action)
已过期(需处理)
| Evidence | Hypothesis | Expired | Days Overdue |
|---|---|---|---|
| ev-benchmark-2024-06-15 | redis-caching | 2024-12-15 | 45 |
| ev-security-2024-07-01 | auth-module | 2025-01-01 | 14 |
| 证据 | 假设 | 过期日期 | 逾期天数 |
|---|---|---|---|
| ev-benchmark-2024-06-15 | redis-caching | 2024-12-15 | 45 |
| ev-security-2024-07-01 | auth-module | 2025-01-01 | 14 |
STALE (Warning)
即将过期(警告)
| Evidence | Hypothesis | Expires | Days Left |
|---|---|---|---|
| ev-loadtest-2024-10-01 | api-gateway | 2025-01-20 | 5 |
| 证据 | 假设 | 过期日期 | 剩余天数 |
|---|---|---|---|
| ev-loadtest-2024-10-01 | api-gateway | 2025-01-20 | 5 |
FRESH
有效
| Evidence | Hypothesis | Expires |
|---|---|---|
| ev-unittest-2025-01-10 | validation-lib | 2025-07-10 |
| 证据 | 假设 | 过期日期 |
|---|---|---|
| ev-unittest-2025-01-10 | validation-lib | 2025-07-10 |
WAIVED
已豁免
| Evidence | Waived Until | Rationale |
|---|---|---|
| ev-perf-old | 2025-02-01 | Migration pending |
undefined| 证据 | 豁免截止日期 | 理由 |
|---|---|---|
| ev-perf-old | 2025-02-01 | 迁移待完成 |
undefinedStep 3: Handle User Actions
步骤3:响应用户操作
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
用户:“更新redis缓存的证据”
- 导航至目录下的对应假设文件
.fpf/knowledge/L2/ - 重新运行验证流程以生成新证据
Deprecate
弃用
User: "Deprecate the auth module decision"
- Move hypothesis from L2 to L1 (or L1 to L0)
- Create deprecation record:
markdown
undefined用户:“弃用认证模块的决策”
- 将假设文件从L2层级移动至L1层级(或从L1移至L0)
- 创建弃用记录:
markdown
undefinedIn .fpf/evidence/deprecate-auth-module-2025-01-15.md
In .fpf/evidence/deprecate-auth-module-2025-01-15.md
id: deprecate-auth-module-2025-01-15 hypothesis_id: auth-module action: deprecate from_layer: L2 to_layer: L1 created: 2025-01-15T10:00:00Z
id: deprecate-auth-module-2025-01-15 hypothesis_id: auth-module action: deprecate from_layer: L2 to_layer: L1 created: 2025-01-15T10:00:00Z
Deprecation: auth-module
弃用:auth-module
Reason: Evidence expired, technology landscape changed
Next Steps: Run to explore alternatives
/fpf:propose-hypotheses
3. Move the hypothesis file:
```bash
mv .fpf/knowledge/L2/auth-module.md .fpf/knowledge/L1/auth-module.md原因:证据已过期,技术环境发生变化
下一步:运行命令探索替代方案
/fpf:propose-hypotheses
3. 移动假设文件:
```bash
mv .fpf/knowledge/L2/auth-module.md .fpf/knowledge/L1/auth-module.mdWaive
豁免
User: "Waive the benchmark until February"
- Create waiver record:
markdown
undefined用户:“将基准测试的豁免期限延长至2月”
- 创建豁免记录:
markdown
undefinedIn .fpf/evidence/waiver-benchmark-2025-01-15.md
In .fpf/evidence/waiver-benchmark-2025-01-15.md
id: waiver-benchmark-2025-01-15 evidence_id: ev-benchmark-2024-06-15 waived_until: 2025-02-01 created: 2025-01-15T10:00:00Z
id: waiver-benchmark-2025-01-15 evidence_id: ev-benchmark-2024-06-15 waived_until: 2025-02-01 created: 2025-01-15T10:00:00Z
Waiver: ev-benchmark-2024-06-15
豁免:ev-benchmark-2024-06-15
Evidence: ev-benchmark-2024-06-15
Hypothesis: redis-caching
Waived Until: 2025-02-01
Rationale: Migration pending, will re-run after completion
Accepted By: User
Created: 2025-01-15
WARNING: This evidence returns to EXPIRED status after 2025-02-01.
---证据:ev-benchmark-2024-06-15
假设:redis-caching
豁免截止日期:2025-02-01
理由:迁移待完成,完成后将重新运行测试
批准人:用户
创建时间:2025-01-15
警告:该证据将在2025-02-01后恢复为已过期状态。
---Natural Language Usage
自然语言使用方式
You don't need to memorize evidence IDs. Just describe what you want.
无需记忆证据ID,只需描述你的需求即可。
Example Workflow
示例流程
User: /fpf:decay
Agent shows report with stale evidence
User: Waive the benchmark until February, we'll re-run it after the migration.
Agent: Creating waiver for ev-benchmark-2024-06-15 until 2025-02-01.
Rationale: "Re-run after migration"
[Creates .fpf/evidence/waiver-benchmark-2025-01-15.md]
User: The vendor API is being discontinued. Deprecate that decision.
Agent: Deprecating hypothesis-vendor-api from L2 to L1.
[Moves file, creates deprecation record]
Next step: Run /fpf:propose-hypotheses to explore alternatives.用户:/fpf:decay
Agent展示包含过时证据的报告
用户:将基准测试豁免至2月,我们会在迁移完成后重新运行。
Agent:正在为ev-benchmark-2024-06-15创建截止至2025-02-01的豁免。
理由:“迁移完成后重新运行”
[创建文件.fpf/evidence/waiver-benchmark-2025-01-15.md]
用户:供应商API即将停用。弃用该决策。
Agent:正在将hypothesis-vendor-api从L2层级降级至L1层级。
[移动文件,创建弃用记录]
下一步:运行/fpf:propose-hypotheses命令探索替代方案。WLNK Principle
WLNK原则
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.
如果假设的任意一份证据已过期(且未被豁免),则该假设即为过时。
这就是最弱环节(WLNK)原则:可靠性 = 所有证据中的最小值。一份过时的证据会让整个决策变得存疑。
Audit Trail
审计追踪
All actions are logged:
| Action | What's Recorded |
|---|---|
| Deprecate | from_layer, to_layer, reason, date |
| Waive | evidence_id, until_date, rationale, date |
Files created in :
.fpf/evidence/deprecate-{hypothesis}-{date}.mdwaiver-{evidence}-{date}.md
所有操作都会被记录:
| 操作 | 记录内容 |
|---|---|
| 弃用 | 原层级、目标层级、原因、日期 |
| 豁免 | 证据ID、截止日期、理由、日期 |
在目录下创建的文件:
.fpf/evidence/deprecate-{hypothesis}-{date}.mdwaiver-{evidence}-{date}.md
Common Workflows
常见流程
Weekly Maintenance
每周维护
/fpf:decay # See what's stale/fpf:decay # 查看哪些内容已过时For each stale item: refresh, deprecate, or waive
针对每个过时项:更新、弃用或豁免
undefinedundefinedPre-Release
发布前检查
/fpf:decay # Check for stale decisions/fpf:decay # 检查是否存在过时决策Either refresh evidence or explicitly waive with documented rationale
要么更新证据,要么明确豁免并记录理由
Waiver rationales become part of release documentation
豁免理由将成为发布文档的一部分
undefinedundefinedAfter Major Change
重大变更后
undefinedundefinedDependency update, API change, security advisory...
依赖更新、API变更、安全公告等...
/fpf:decay # See what's affected
/fpf:decay # 查看受影响的内容
Deprecate obsolete decisions
弃用过时决策
Start new hypothesis cycle for replacements
启动新的假设周期以寻找替代方案
undefinedundefined