关于 spike
spike 是用于验证候选解决方案的技能,面向需要以实验判断方案是否满足问题标准的开发者。它在隔离的暂存目录中比较基线与候选方案,并输出带有证据和适用范围的结论。
主要功能
- 01在指定暂存目录内实验
- 02可行时建立基线失败证据
- 03用相同标准测试候选方案
- 04探索受约束的替代方案
- 05输出可复核的验证报告
适用场景
- 01验证候选修复是否解决原始故障
- 02在实现前证明新能力可行
- 03比较限定方向内的方案
- 04记录无法复现或验证的原因
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ venhdev/ skills --skill spike安装后在 Claude Code 中输入/spike确认已加载。
详细介绍
spike — 方案验证
运行不变量
- 临时目录边界:仅在
.agents/scratch/内编写候选逻辑、测试框架、测试数据和验证产物;不要改动生产代码和永久测试。 - 工作树保护:保留现有更改和无关的临时产物。以只读方式检查集成接缝;执行需要修改时,使用隔离副本。
- 问题忠实度:以原始问题和验收标准为依据提出断言。在基线运行和候选方案运行中保持断言不变;区分隔离能力验证与生产修复验证。
- 方向边界:在给定的解决方向和约束内,探索有限且有证据依据的替代方案。需要改变方向时,应另行报告以供决策;绝不要悄然扩大搜索范围或强行得出 GREEN 结果。
- 敏感证据与环境:记录日志前先脱敏;绝不要检查机密文件(
.env*、*.key、*.pem)。测试框架运行器和临时数据存储应以.agents/dev-environment.md为依据;实验严格限定在.agents/scratch/内。
领域评估标准
输入与验证目标
- 接收问题或 RED 信号、候选方案,以及由输入或已确认上下文确立且带有约束的解决方向。问题可能是推断得出的,也可能比较含糊;应根据现有证据推导可测试的标准并记录假设。若候选方案的方向边界明确,则可由候选方案自行确立方向;未说明的架构选择应保持开放。
- 确定相关集成接缝、预期结果、已知的原始故障机制,以及需要验证的主要不确定性。如果输入或上下文无法确立测试标准或允许的方向,则在探索替代方案前报告
UNRESOLVED,并说明所需输入。 - 使用原始症状定义修复断言。对于新功能,使用其所需行为作为断言;仅在与该要求相关时,选择正确性、兼容性、并发性、对等性或资源指标。
基线与候选方案实验
- 可行时先确认基线为 RED,再对候选方案运行相同断言以寻求 GREEN。如果无法复现原始故障,则在任何缺陷修复结论中保留并说明这一缺口。
- 测试真实接缝或忠实的隔离副本。说明模拟边界和省略的集成行为;仅由模拟得到的 GREEN 只能证明建模范围,不能确认未经验证的生产修复。
- 尽量精简测试框架,同时保留关键输入、环境、状态转换和边界情况。使用命令和经过脱敏的测试数据,确保设置和执行可复现。
- 对于间歇性或并发行为,尽可能控制随机种子、时钟和交错顺序;记录失败和重复次数,不要只凭一次通过就接受结果。
- 根据每次失败,在给定方向内选择有依据的替代方案。达到完整验证、穷尽相关且允许的替代方案、遇到运行时或访问阻碍,或有证据表明必须改变方向时,即停止探索。
结论状态
CONFIRMED:实证证据在明确说明的测试范围内满足原始标准。要确认缺陷修复,还必须在忠实的基线测试中复现故障,并让候选方案在相同断言下达到 GREEN。INFERRED:推理或部分执行支持该候选方案,但原始标准尚未得到完整的实证验证;应说明具体缺口。REJECTED:有界实验表明,在穷尽相关且允许的替代方案后,该候选方案或方向仍不符合标准。结论仅限于已测试的替代方案和条件;不要声称该方案在任何情况下都不可能成立。UNRESOLVED:缺少方向、标准、运行环境、访问权限或其他前提,无法作出有依据的验证或否定结论。
规范输出契约
生成一份精简报告,提供足够的证据以重现验证并评估适用性。必要时在临时目录中保留已清理的脚本和日志;在报告中总结关键观察结果。
# Solution-Proof Report: <problem / candidate>
State: <CONFIRMED | INFERRED | REJECTED | UNRESOLVED>
Conclusion: <what the candidate demonstrably solves, may solve, failed to solve, or leaves unknown>
Original criteria: <problem-grounded assertions>
Direction and constraints: <supplied boundary and assumptions>
Integration seam: <module/interface/runtime boundary>
Evidence: <scratch paths and commands; baseline and candidate results for the same assertion>
Conditions and proof limits: <tested environment, substitutions, missing proof, applicability limits>
## Alternatives *(omit if none were explored)*
<candidate -> decisive observation -> retained or eliminated within direction>
路由
- 已验证的解决方案已获接受,且需要规划文件影响 →(通过 /changeset)。
- 缺少的要求导致无法进行有意义的验证 →(通过 /clarify)。
- 成功需要改变给定方向 →(通过 /architect-decision)。
执行协议
- 明确问题、候选方案、方向、约束和切入点。定义原始断言以及证明它所需的证据。
- 构建最小化的临时实验,并在可行时运行基线。针对相同标准和相关边界运行候选方案。
- 检查失败情况,并在既定方向内探索有依据的替代方案,直至完成验证、达到有限探索的边界、遇到阻碍或必须改变方向。记录足以说明停止理由的观察结果。
- 提交解决方案验证报告,说明其状态、条件和局限;确认生产文件未发生更改,并保留有用且已清理的验证产物。
评论
支持 Markdown