用途
该技能用于规范 TestFx 功能交付过程中的证据留存与决策记录,帮助团队在实现新功能时保留研究、实验、设计和验证的完整脉络,并确保测试对行为变更具有敏感性。它强调从问题定义到演示的每一步都应有可追溯的证据,而不是仅凭 AI 回答或缺失理由就当作规格。
主要能力
- 启动并维护决策记录:为每个新功能扩展现有设计文档/RFC,或创建
docs/decisions/<feature-name>.md,与实现一起版本化并链接到 PR。记录问题与契约、研究与实验、替代方案与决策、验证与演示、开放问题。区分研究、提议实验、实际运行的实验和结果,记录失败方向及放弃原因。 - 实施前挑战设计:不把首个实现、AI 回答或缺失理由当作规格。搜索仓库先例和权威契约,对每个重要选择比较当前/不变设计、最简单可行替代方案和提议方案,说明具体权衡。识别消费者、所有权/生命周期、失败与取消行为、兼容性、可观测性及新抽象或公共 API 的成本。跨产品/包/流程变更需定义生产者-消费者契约并使用
testfx-acceptance-validation;修改测试或生命周期/共享状态路径前应用testfx-parallel-safety-preflight。 - 证明测试对变更敏感:实施前建立聚焦的现有测试基线。对回归修复或新功能的行为测试,在两种生产状态下运行相同的新/变更测试:无相关生产变更时测试应在预期行为断言处失败;有生产变更时相同测试通过且相关现有测试保持绿色。使用隔离的、任务拥有的比较工作树/输出区域,记录确切的基础/头部提交及保留的测试/支持代码补丁。不要移除测试、削弱断言、修改共享缓存或破坏性回退用户工作。使用仓库固定工具链重建每个状态,捕获 MSBuild 的 binlog,保持输出/结果分离。包消费测试需重新打包每个状态并验证消费者解析/加载的位;相同包版本和
--no-build针对过期输出不构成证据。使用最小相关选择器,并协调发现/选中的身份与执行结果。非零命令退出本身不是失败断言;编译、还原、启动、超时/基础设施失败、缺失测试、零测试和跳过均不能建立回归敏感性。若新 API 无法针对旧生产状态编译,编译器错误不是行为红阶段证明,应优先保留 API/测试框架但移除功能行为的比较,或采用故意违反断言契约的编译变异,并记录移除/变异内容,标注为行为移除/变异检查,而非原始基线运行。若无法进行安全可执行比较,解释原因并报告回归敏感性未证明,而非编造红结果。对于保持行为的重构或仅测试安全网添加,聚焦测试应在前后均通过,记录绿/绿等价性;用故意相关变异展示任何新安全网的敏感性并明确标注。仅文档变更不需要产品测试或编造红/绿运行。 - 演示功能并准备 PR:尽可能用截图或短 GIF/视频展示新的或变化的用户可见行为,包括终端/CLI 输出、分析器 UX 和报告。捕获实际变更的产品,最好有前后对比,提供足够上下文识别行为。图表可解释设计但不是功能运行的证明;不要制造或摆拍输出作为成功演示。提供说明文字、复现命令/步骤和源/包来源。视觉输出需配可读文本解释/转录以满足可访问性。若文本或工件更好传达结果,使用并解释选择。对于内部、仅文档、不可访问或非视觉变更,说明媒体不适用/不可用并提供相关证据。脱敏敏感数据;避免无关窗口、凭据和私有路径。媒体补充可执行断言和组合产品验证。使用描述性、面向用户的 PR 标题;遵循 PR 模板,链接决策记录、演示和回归证据,并说明剩余差距。授权媒体发布时使用
github-pr-media(如可用)。保留现有正文内容并通过回读验证发布文本和附件链接。不要仅因技能要求证据就上传、打开 PR 或发布审查。
使用方式
该技能作为功能交付的流程指南,在编码前启动决策记录,实施中更新研究、实验、决策和方向变化,实施后验证测试敏感性并准备 PR 证据。需结合仓库指令和 session-delivery-hygiene 使用。
适用场景
适用于 TestFx 需要留下研究、设计和验证证据的新功能开发,包括回归修复的行为测试、跨产品/包/流程变更、需要展示用户可见行为的变更。对于仅文档变更、非视觉或内部变更,可说明媒体不适用并提供相关证据。
限制
该技能不授权发布、新增依赖或无关改动。不要求常规工作有独立代理或多模型审查。不得包含机密、个人数据或公共漏洞细节。临时日志和捕获应放在任务拥有的工件存储中,而非源代码控制。不得编造尝试或红结果。若无法进行安全可执行比较,应报告回归敏感性未证明。