fpf%3Adecay by neolabhq/context-engineering-kit
npx skills add https://github.com/neolabhq/context-engineering-kit --skill fpf:decay通过识别过时的决策并提供治理操作来管理证据新鲜度。实现 FPF B.3.4(证据衰减)。
核心原则: 证据是会过期的。基于过期证据做出的决策隐藏着风险。
每份证据都有一个 valid_until 日期。6 个月前的基准测试可能不再反映当前系统性能。主要依赖项更新之前的安全审计没有考虑新的漏洞。
当证据过期时,它所支持的决策就变得可疑——不一定错误,只是未经核实。
豁免 = “我知道这个证据已过时,我暂时接受这个风险。”
在以下情况使用:
豁免不是忽略问题——它是明确记录你知道风险并接受它,直到特定日期。
| 情况 | 操作 | 作用 |
|---|---|---|
| 证据过时但决策仍然有效 | 刷新 | 重新运行测试,获取新证据 |
| 决策已过时,需要重新考虑 |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 降级假设,重新开始评估 |
| 暂时接受风险 | 豁免 | 记录风险接受情况及截止日期 |
.fpf/evidence/ 中的所有证据文件valid_until## 证据新鲜度报告
### 已过期(需要处理)
| 证据 | 假设 | 过期日期 | 逾期天数 |
|----------|------------|---------|--------------|
| ev-benchmark-2024-06-15 | redis-caching | 2024-12-15 | 45 |
| ev-security-2024-07-01 | auth-module | 2025-01-01 | 14 |
### 过时(警告)
| 证据 | 假设 | 到期日期 | 剩余天数 |
|----------|------------|---------|-----------|
| ev-loadtest-2024-10-01 | api-gateway | 2025-01-20 | 5 |
### 新鲜
| 证据 | 假设 | 到期日期 |
|----------|------------|---------|
| ev-unittest-2025-01-10 | validation-lib | 2025-07-10 |
### 已豁免
| 证据 | 豁免至 | 理由 |
|----------|--------------|-----------|
| ev-perf-old | 2025-02-01 | 迁移待处理 |
根据用户响应,执行以下操作之一:
用户:"刷新 redis 缓存证据"
.fpf/knowledge/L2/ 中的假设用户:"弃用认证模块决策"
# 在 .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
---
# 弃用:auth-module
**原因**:证据过期,技术环境已变化
**后续步骤**:运行 `/fpf:propose-hypotheses` 来探索替代方案
3. 移动假设文件:
mv .fpf/knowledge/L2/auth-module.md .fpf/knowledge/L1/auth-module.md
用户:"豁免该基准测试直到二月"
# 在 .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
---
# 豁免:ev-benchmark-2024-06-15
**证据**:ev-benchmark-2024-06-15
**假设**:redis-caching
**豁免至**:2025-02-01
**理由**:迁移待处理,完成后将重新运行
**接受人**:用户
**创建日期**:2025-01-15
**警告**:此证据在 2025-02-01 后将恢复为已过期状态。
你不需要记住证据 ID。 只需描述你想要什么。
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.
如果一个假设的_任何_证据过期(且未豁免),则该假设为过时。
这就是最弱环节(WLNK)原则:可靠性 = min(所有证据)。一个过时的环节会使整个决策变得可疑。
所有操作都会被记录:
| 操作 | 记录内容 |
|---|---|
| 弃用 | from_layer, to_layer, reason, date |
| 豁免 | evidence_id, until_date, rationale, date |
在 .fpf/evidence/ 中创建的文件:
deprecate-{hypothesis}-{date}.mdwaiver-{evidence}-{date}.md/fpf:decay # 查看哪些内容过时
# 对于每个过时项:刷新、弃用或豁免
/fpf:decay # 检查过时决策
# 要么刷新证据,要么明确豁免并记录理由
# 豁免理由成为发布文档的一部分
# 依赖项更新、API 变更、安全公告...
/fpf:decay # 查看受影响内容
# 弃用过时的决策
# 为替代方案启动新的假设周期
每周安装量
150
仓库
GitHub 星标数
699
首次出现
2026年2月19日
安装于
opencode145
github-copilot144
codex144
gemini-cli143
kimi-cli141
cursor141
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.
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.
Waiving = "I know this evidence is stale, I accept the risk temporarily."
Use it when:
A waiver is NOT ignoring the problem - it's explicitly documenting that you know about the risk and accept it until a specific date.
| 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 |
.fpf/evidence/valid_until from frontmatter## Evidence 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 |
### STALE (Warning)
| Evidence | Hypothesis | Expires | Days Left |
|----------|------------|---------|-----------|
| 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 |
### WAIVED
| Evidence | Waived Until | Rationale |
|----------|--------------|-----------|
| ev-perf-old | 2025-02-01 | Migration pending |
Based on user response, perform one of:
User: "Refresh the redis caching evidence"
.fpf/knowledge/L2/User: "Deprecate the auth module decision"
# 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
---
# Deprecation: auth-module
**Reason**: Evidence expired, technology landscape changed
**Next Steps**: Run `/fpf:propose-hypotheses` to explore alternatives
3. Move the hypothesis file:
mv .fpf/knowledge/L2/auth-module.md .fpf/knowledge/L1/auth-module.md
User: "Waive the benchmark until February"
# 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
---
# Waiver: 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.
You don't need to memorize evidence IDs. Just describe what you want.
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.
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.
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/fpf:decay # See what's stale
# For each stale item: refresh, deprecate, or waive
/fpf:decay # Check for stale decisions
# Either refresh evidence or explicitly waive with documented rationale
# Waiver rationales become part of release documentation
# Dependency update, API change, security advisory...
/fpf:decay # See what's affected
# Deprecate obsolete decisions
# Start new hypothesis cycle for replacements
Weekly Installs
150
Repository
GitHub Stars
699
First Seen
Feb 19, 2026
Installed on
opencode145
github-copilot144
codex144
gemini-cli143
kimi-cli141
cursor141
Go语言接口与结构体设计原则:小巧接口、具体返回类型与零值优化
681 周安装