用途:当 rust-lang-project-harness 任务涉及延迟、吞吐、内存分配、解析/渲染循环或 Rust 性能验证契约时使用。适用于延迟敏感、吞吐敏感、分配敏感、解析密集、渲染密集、异步/并发或处于热路径的改动。
主要能力:该 harness 本身不运行基准测试,而是为外部 Agent 技能规划一项义务,并接受针对当前指纹的回执或豁免。触发信号包括:owner 配置含 RustOwnerResponsibility::LatencySensitive;任务改动解析循环、渲染循环、快照生成、依赖图遍历、模块发现、配置规划、异步执行、缓存行为或分配密集的集合逻辑;用户询问性能、回归、p50/p99/p999、吞吐、分配、性能分析、基准稳定性或运行时退化;策略变更增加每次运行需扫描的代码或项目规模。
证据契约:RustVerificationTaskKind::Performance 回执必须针对任务指纹报告以下证据键:benchmark_command(实际运行的精确命令)、baseline(对比点,如 main 分支、上一版本、保存的基准基线或明确的历史测量)、regression_threshold(SLA 被视为破坏前允许的变化)、latency_or_throughput(测得的延迟、吞吐或两者)、allocation_profile(分配次数、字节数、分配器配置,或明确说明分配不属于该 owner 契约)、profile_artifact(火焰图、分析器报告、基准报告或其他留存产物的路径或链接)。若某键不适用,回执仍需给出具体解释,空泛文字不能通过任务。
推荐工具:优先使用项目自有的基准命令;使用 cargo bench 作为原生基准入口;需要统计对比和保存基线时用 Criterion;需要轻量 Rust 基准函数时用 Divan;CI 中确定性指令/缓存类证据比墙钟时间更有用时用 iai-callgrind;任务关注瓶颈、分配来源、锁竞争或 CPU 热路径而非仅基准分数时用 flamegraph 或其他分析器。
Agent 工作流:从验证计划中识别 owner 路径和任务指纹;选择能覆盖该 owner 的最窄基准/分析命令;除非契约另有说明,在单元测试通过后运行;与声明的基线和阈值比较;仅当所有必需证据键齐全时才发出 RustVerificationReceipt::passed(...);仅当任务有意超出范围时才使用 RustVerificationWaiver,并包含 owner、原因和到期时间。
限制:不要把它变成 Clippy 风格的优化 lint;仅当项目结构、职责配置或解析器事实表明证据重要时,harness 才要求性能证据。若紧凑任务行已含 skill=rust-verification-performance 或其他已配置的性能技能 id,不要仅为了解契约而重新加载本文件,应使用结构化 JSON 任务或项目自有适配器配置;本文件是配置或修复时的后备指引。