关于 crucible-emergent-resurrection
crucible-emergent-resurrection 是面向研究 Agent 的技能,用于保存失败假设及其负面知识,并定义何时可以重新测试。它区分暂缓与已证伪的想法,并要求在复活前进行审查。
主要功能
- 01失败模式分类及重试触发条件
- 02归档模板与状态区分
- 03复活前的三层审查
- 04仅追加的复活记录
适用场景
- 01记录被测试否定的假设
- 02查找条件已变化的归档想法
- 03在再次试验前审查候选项
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill crucible-emergent-resurrection安装后在 Claude Code 中输入/crucible-emergent-resurrection确认已加载。
附带文件references/evolution-log.md
详细介绍
Emergent Resurrection — 否定性知识档案
自我进化技能:如果失败分类遗漏了某种模式,或某种复活触发条件再次出现,请更新相关章节,并在
references/evolution-log.md中追加记录。不要拖延。
失败的假设并非毫无价值。它们是反面知识,能够:
- 记录调查的边界
- 避免再次探索已知的死路
- 在条件变化时重新发挥作用
这项技能是基因进化机制,体现了“只要能通过迭代过程重新出现,就不要排除任何尝试过的方案”。
为什么不直接删除失败的想法
本次会话累计了 17 次无果的尝试。如果不记录反面知识,我们将:
- 在未来的会话中重复探索相同的死路(浪费计算资源)
- 丢失每次失败带来的元层面教训(错误的零假设、错误的缩放、错误的范围)
- 无法判断条件是否已充分变化、足以重新尝试
保留失败尝试比重新执行它们成本更低。
失败模式分类
每次失败的尝试都符合一种或多种模式。分类决定了复活条件。
| 失败模式 | 描述 | 复活触发条件 |
|---|---|---|
null-insignificant | 信号存在,但低于噪声下限 | 噪声下限降低(回测时间更长、数据更好、成本降低) |
overfit-in-sample | 样本内表现强劲,样本外表现不佳 | 在不同数据制度下交叉验证成功,或重新设计架构 |
wrong-null-applied | 信号正确,但错误的零假设类型导致其失效 | 发现正确的零假设方法(参见 Skill B §5 正交级联) |
cross-asset-failed | 在一种资产上有效,在其他资产上失效 | 在不同资产上通过相同配置的试验,或启用可按资产选择的制度检测器 |
regime-conditional | 全历史数据测试失败;优势集中于特定制度 | 通过因果前向滚动分类制度,且制度内训练集和测试集均为正值,并且零假设 z>3 |
label-leaked | 特征/标签违反因果性 | 重新验证因果性(bars[:i] 为排他范围),且重测通过 |
agent-overestimation | Agent 的估计高于实际情况 | 外部判定标准或逐 bar 回放验证缩小后的版本 |
grid-degenerate | 参数网格过窄 | 扩大网格,或通过敏感性分析发现休眠维度 |
dormant-low-precedence | 有效,但优先级较低 | 清除优先级更高的前沿后,重新审视 |
falsified-comprehensive | 在既定假设下经过全面测试,结果不可能成立 | 假设发生变化(新增资产类别、新微观结构、制度转变) |
每个归档文件都标记其中一种或多种模式。
归档结构
plugins/crucible/skills/d-emergent-resurrection/references/
├── archive/
│ ├── <YYYY-MM-DD>-<slug>.md Dormant/failed campaign record
│ └── ...
├── falsified/
│ └── <YYYY-MM-DD>-<slug>.md Permanently falsified (highest bar for resurrection)
└── exhumation-log.jsonl Append-only: when ideas moved, why
两者的区别:
archive/= 休眠,而非终结。等待合适的条件。falsified/= 在明确假设下经过全面测试。复活需要假设发生变化。
归档文件模板
将失败的想法移入归档时,请使用以下 frontmatter 结构:
---
id: "UNIQUE-ID"
title: "Short descriptive title"
status: "dormant" # or "falsified"
failure_mode: ["null-insignificant"] # list; can be multiple
confidence: 0.95 # how sure we are it's dead NOW
date_dormant: YYYY-MM-DD
verdict: |
One-paragraph summary of what was tested and why it failed.
linked_ledger_entries:
- "FINDING-ID-IN-EVOLUTION-JSONL"
linked_audits:
- "findings/evolution/audits/YYYY-MM-DD-slug/verdict.md"
resurrect_if:
- condition: "noise_floor_drops"
trigger_metric: "trade_level_volatility"
threshold: "< 1.2 bps (was 2.1 bps at dormancy)"
requires: "6+ month new backtest reducing noise > 30%"
- condition: "new_asset_regime"
trigger_metric: "asset_correlation_cluster"
threshold: "Jaccard(newasset_patterns, eur_patterns) > 0.65"
requires: "Trial on new asset with fold-shuffle p < 0.05"
whats_blocked:
- "List of specific reasons it was shelved"
next_agent_checklist:
- [ ] If noise_floor drops > 30%: re-run config on latest data
- [ ] Do NOT assume dead — it's 'not now, but perhaps next regime'
---
# Title
<detailed description of why it failed, what was tested, what would be needed to resurrect>
3 层挖掘流程
复活必须经过审慎决策。绝不自动复活。
第 1 层 — 自动标记:定期(可以是 cron 作业或会话启动检查)扫描 archive/*,查找 resurrect_if 条件可能已满足的文件。标记为 CANDIDATE_FOR_RESURRECTION_<date>。这一步只会标记,不会复活。
第 2 层 — Agent 审查:在下一次研究会话中,或由自主 Agent 审查已标记的候选项。选择其中一个进行试验(避免反复折腾)。运行 1-2 个折叠,检查信号是否确实重新出现。然后:
- 晋升为活跃研究项目(
status: "active",新建审计文件夹) - 更新归档文件的 frontmatter:“在 时出现误报,条件看似满足,但重试失败”
第 3 层 — 人工签核:将任何复活的内容部署到生产环境前(或为其提供超出初始重新试验所需的资源前),由人工审查挖掘报告。确认条件变化真实存在,而非数据伪影。
何时归档(触发条件)
研究会话期间,遇到以下情况时移至 archive/:
- 串行门控失败导致信号消失(Skill B §2,Gate C——不可恢复门控)
- 随机打乱零假设测试明确拒绝该假设(z < 1 且 p > 0.9)
- 20+ 个参数组合全部失败 → 归档整个方法,而非每个组合
- 跨资产 Gate D 失败 → 归档“通用”解释;保留特定资产的解释,作为范围缩小后的活跃版本(参见 Skill C §3)
归档 ≠ 沉默。写入文件;追加到 exhumation-log.jsonl:
{
"date": "YYYY-MM-DD",
"action": "archive",
"id": "...",
"reason": "...",
"from_audit": "..."
}
何时不应归档
- 某项发现通过所有门控,但经济效益一般——这是
live-limited-economics,而非休眠状态;保持活跃并寻找集成伙伴 - 某项发现未通过某个门控——参见 Skill C §3(缩小范围,而非彻底否定)
- 某个研究项目采用的方法得出零结果——不归档方法本身;只归档具体假设
- 用户在研究项目中途失去兴趣——这不属于失败模式;在其他位置标记为
paused
群体层面的复活信号
除了单个文件中的 resurrect_if,还要关注群体层面的条件:
- 多个失败的研究项目存在相同的失败模式 → 共同原因可能可以解决(例如,5 个项目都使用了错误的零假设类型 → 设计新的零假设 → 复活全部 5 个项目)
- 出现新方法/新技术 → 旧方法下失败的项目可能会反转
- 资产微观结构发生变化 → 特定资产的失败可能会逆转
与分类账集成
findings/evolution/evolution.jsonl 条目新增 dormant_refs 字段:
{
"id": "FINDING-ID",
"status": "null",
"dormant_refs": [
{
"archive_file": "plugins/crucible/skills/d-emergent-resurrection/references/archive/<slug>.md",
"failure_mode": ["null-insignificant"],
"resurrect_conditions": ["noise_floor_drops", "new_asset_regime"]
}
]
}
双向关联:分类账 → 归档文件,归档文件 → 分类账。
当前归档状态(初始状态)
会话 ca9d7ffa-ef5a-41d0-94c8-56f113a132f2 产生了:
- 17 个零假设研究项目 → 每个项目都应有一个归档文件(初始状态:归档文件尚未回填;处理各个研究项目的判定时再完成)
- 1 项正向发现(
NGRAM3FU-STRADDLE-001-FULL-STACK)→ 保持活跃,不归档
回填 17 个归档条目是未来的任务;初始的 references/archive/ 有意保持为空,直到逐一审查每个研究项目的判定并写入归档。
执行后反思
调用此技能后:
- 失败想法的归档是否顺利完成?如果文件过于简略或过于详细,请更新上方模板。
resurrect_if:条件是否触发(第 1 层)?条件是否足够具体,还是过于含糊?请完善。- 是否出现分类中没有的新失败模式?添加一行;记录到
references/evolution-log.md。 - 某个先前归档的想法是否成功复活?在
exhumation-log.jsonl中记录挖掘过程,并注明奏效的条件模式——这是元知识。