Decay

NeoLabHQ/context-engineering-kit/skills/decay

作者 NeoLabHQ23e2428e809d77717f8acc9659c374a3a1fcb93e无许可证收录于 2026年10月9日更新于 2026年10月9日

Manage evidence freshness by identifying stale decisions and providing governance actions

AI 生成的概览

跟踪 FPF 知识库中的证据时效,报告过期或失效证据,并记录刷新、弃用或豁免操作。

功能
该技能扫描 .fpf/evidence/ 目录中的证据文件,读取每个文件的 valid_until 日期,并将条目分类为新鲜、失效或已过期。它会按状态分组呈现时效报告,然后执行用户要求的治理操作:刷新证据、通过移动知识层级来弃用假设,或记录有期限的豁免。它还会在证据目录中写入弃用和豁免记录,形成审计轨迹。
适用场景
适用于对决策知识库进行定期维护、发布前检查,或在重大依赖或 API 变更之后,用来找出依赖过时证据的决策。它适合将假设和证据保存在 FPF .fpf 目录结构中、并希望留下明确风险接受记录的团队。
运行要求
需要一个已有的 .fpf/evidence/ 知识库,其中的证据文件包含 valid_until 前置元数据,并对该目录具有读写权限。该技能仅为说明性内容,不附带脚本;文件读取、移动和记录创建均由智能体完成。

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

SituationActionWhat it does
Evidence is old but decision is still goodRefreshRe-run the test, get fresh evidence
Decision is obsolete, needs rethinkingDeprecateDowngrade hypothesis, restart evaluation
Accept risk temporarilyWaiveRecord the risk acceptance with deadline

Action (Run-Time)

Step 1: Generate Freshness Report

  1. List all evidence files in .fpf/evidence/
  2. For each evidence file:
    • Read valid_until from frontmatter
    • Compare with current date
    • Classify as FRESH, STALE, or EXPIRED

Step 2: Present Report

markdown
## 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 |

Step 3: Handle User Actions

Based on user response, perform one of:

Refresh

User: "Refresh the redis caching evidence"

  1. Navigate to the hypothesis in .fpf/knowledge/L2/
  2. Re-run validation to create fresh evidence
Deprecate

User: "Deprecate the auth module decision"

  1. Move hypothesis from L2 to L1 (or L1 to L0)
  2. Create deprecation record:
markdown
# In .fpf/evidence/deprecate-auth-module-2025-01-15.md---id: deprecate-auth-module-2025-01-15hypothesis_id: auth-moduleaction: deprecatefrom_layer: L2to_layer: L1created: 2025-01-15T10:00:00Z---
# Deprecation: auth-module
**Reason**: Evidence expired, technology landscape changed
**Next Steps**: Run `/fpf:propose-hypotheses` to explore alternatives
  1. Move the hypothesis file:
bash
mv .fpf/knowledge/L2/auth-module.md .fpf/knowledge/L1/auth-module.md
Waive

User: "Waive the benchmark until February"

  1. Create waiver record:
markdown
# In .fpf/evidence/waiver-benchmark-2025-01-15.md---id: waiver-benchmark-2025-01-15evidence_id: ev-benchmark-2024-06-15waived_until: 2025-02-01created: 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.

Natural Language Usage

You don't need to memorize evidence IDs. Just describe what you want.

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.

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:

ActionWhat's Recorded
Deprecatefrom_layer, to_layer, reason, date
Waiveevidence_id, until_date, rationale, date

Files created in .fpf/evidence/:

  • deprecate-{hypothesis}-{date}.md
  • waiver-{evidence}-{date}.md

Common Workflows

Weekly Maintenance

/fpf:decay                    # See what's stale# For each stale item: refresh, deprecate, or waive

Pre-Release

/fpf:decay                    # Check for stale decisions# Either refresh evidence or explicitly waive with documented rationale# Waiver rationales become part of release documentation

After Major Change

# Dependency update, API change, security advisory.../fpf:decay                    # See what's affected# Deprecate obsolete decisions# Start new hypothesis cycle for replacements

来源与署名

来源:NeoLabHQ/context-engineering-kit位于skills/decay提交23e2428

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架