Skills
收录 96,770 个为 Agent 打包的专项能力与操作指引,复制一行命令即可安装。
测试与质量
审计代码库,检查 AI 编码助手在“vibe coding”应用中引入的常见安全漏洞。检查暴露的 API 密钥、访问控制缺陷(Supabase RLS、Firebase rules)、缺失的身份验证校验、客户端信任问题、不安全的支付流程等。用户询问安全问题、希望进行代码审查、提到“vibe coding”,或编写、审查涉及身份验证、支付、数据库访问、API 密钥、机密信息或用户数据的代码时,均使用此技能,即使用户没有明确提及安全。用户说“这样安全吗?”、“检查我的代码”、“审计一下”、“检查漏洞”或“有人能入侵吗?”等话时,也应触发。
为 Agentforce Agent 编写、运行和分析结构化测试套件。以下情况触发:用户编写或修改测试规范 YAML (AiEvaluationDefinition);运行 sf agent test create、run、run-eval 或 results 命令;询问测试覆盖策略、指标选择或自定义评估;解读测试结果或诊断测试失败;询问批量测试、回归套件或 CI/CD 测试集成。以下情况不要触发:用户创建、修改、预览或调试 .agent 文件(使用 developing-agentforce);部署或发布 Agent;编写 Agent Script 代码;使用 sf agent preview 进行开发迭代;分析生产会话跟踪(使用 observing-agentforce)。
使用会话跟踪和 Data Cloud 分析生产环境中 Agentforce Agent 的行为。以下情况触发:用户查询 STDM 会话数据或 Data Cloud 跟踪记录;调查生产环境中的 Agent 故障、回归或性能问题;询问会话跟踪、对话日志或 Agent 指标;希望在预览中复现已报告的生产问题;运行 findSessions 或跟踪分析查询。以下情况不要触发:用户在开发期间创建、修改或调试 .agent 文件(使用 developing-agentforce);编写或运行测试规范(使用 testing-agentforce);使用 sf agent preview 进行本地开发迭代;部署或发布 Agent。
通过 Model Context Protocol(MCP)服务提供 SonarQube 和 SonarCloud 集成模式。在 Agent 工作流中直接支持质量门禁监控、问题发现与分类、推送前代码分析和规则讲解。当用户想检查质量门禁、搜索 Sonar 问题、在提交前分析代码片段或了解 SonarQube 规则时使用。触发词包括“sonarqube”“sonarcloud”“quality gate”“sonar issues”“analyze with sonar”“check sonar”“sonar rule”“pre-push analysis”。
识别 .NET 项目的测试平台、框架、命令模式,以及 SDK 风格或经典项目系统。仅用于回答“使用哪种测试平台/框架?”“VSTest 还是 MTP?”或“此项目使用什么运行器?”,也包括桥接设置、UseVSTest 退出选项,以及不兼容或冲突的 VSTest/MTP 配置。解析 MSTest/xUnit/NUnit/TUnit 的 global.json、项目、packages.config、Directory.Build.props 和 Directory.Packages.props 优先级。用户要求运行/筛选测试,或询问命令、标志、TRX/转储文件、测试命令/筛选器错误时不要使用;直接使用 run-tests。不要将热重载或迁移请求路由到此技能;mtp-hot-reload 可在内部使用此技能检测平台。
用户要求修复、重写、更新、改进、现代化现有 MSTest 测试或 MSTest 专属配置,提供修正后的代码,或解释相关内容时,始终使用。用户要求“审查”并希望获得修正代码或编辑时也使用,即使只粘贴了一条断言,或测试通过但失败输出不佳。涵盖 expected/actual 标签;通用布尔值、集合、字符串、数值、null、身份、异常、硬转换及 object[] 检查;TestContext/生命周期;超时/取消;OS/CI 条件、重试、清理、并行化、MSTest.Sdk 项目设置及 MSTESTxxxx。遵循已安装的 MSTest 版本。设计新测试用例(使用 code-testing)、仅生成审计报告、创建项目文件而非解释 MSTest 设置、运行测试、迁移测试框架,或处理非 MSTest/非 .NET 代码时不要使用。
当任务涉及 BenchmarkDotNet(BDN)时启用此技能,包括创建、运行、配置或审查 BDN 基准测试。如果对 .NET 代码进行微基准测试很有用且 BenchmarkDotNet 很可能是合适工具,也请启用。在回答 .NET 性能问题需要测量且可能需要 BenchmarkDotNet 时,可考虑启用。涵盖微基准测试设计、BDN 配置和项目设置、高效运行 BDN 微基准测试,以及使用 BDN 进行并排性能比较。不要用于分析或跟踪 .NET 代码(dotnet-trace、PerfView)、生产遥测或负载/压力测试(Crank、k6)
激活前提:请求或发现的目标必须明确指出 C#、.NET、`.cs` 或 `.csproj`;否则保持休眠,不调用此技能。适用于:在 C# 中定位 System.DateTime.Now/UtcNow、System.IO.File/Directory、System.Environment、HttpClient、Console 或 Process 的用法;审查 C# 代码中难以测试的框架依赖;或验证这些 C# 调用是否已抽象。不适用于:不满足激活前提的目标;生成包装器(使用 generate-testability-wrappers);迁移代码(使用 migrate-static-to-wrapper);或一般代码审查。
在 Microsoft Testing Platform 项目中,为长期运行的控制台宿主编辑/重新运行循环设置或恢复 MTP 热重载。适用于明确的 MTP 控制台请求,例如“启用热重载”、“编辑后通过 dotnet run 重新运行”或不受支持/粗鲁编辑。涵盖设置、运行/监视、重启、筛选器,以及 VSTest 不修改项目的备用方案。对于一次性运行、精确命令、筛选器错误、TRX/转储文件,或仅仅是测试失败,请使用 run-tests。如果 Test Explorer 或 IDE 应在没有 MTP 控制台宿主的情况下重新运行测试,则不要使用。排除编辑器集成、CI,以及编写/调试测试。
使用正式且有研究依据的测试异味名称及 testsmells.org 的 19 种学术分类,审查任意语言的现有测试。适用于用户要求学术性或可引用的测试异味审查、命名异味类别,或按严重程度排序的正式异味评估。涵盖 Assertion Roulette、Conditional Test Logic、Mystery Guest、Eager Test、Sleepy Test、Unknown Test、Sensitive Equality,以及 .NET、Python、JavaScript/TypeScript、Java、Go、Ruby、Rust、Swift、Kotlin、PowerShell 和 C++ 中的其余目录类别。快速实用的测试审查请勿使用(改用 test-anti-patterns);也不要用于编写或运行测试、框架迁移、覆盖率或断言多样性指标。
如果目标已使用注入的接口或内置抽象(例如 IFileSystem 或 TimeProvider),则不要使用,即使请求说“生成包装器”;无需新建包装器。仅当 C# 源码调用环境/静态依赖且不存在可注入切入点时使用:首次采用 TimeProvider、IHttpClientFactory 或 System.IO.Abstractions;精简的 Environment/Console/Process 包装器;IProcessRunner;DI 注册;或保留静态 API 的环境切入点。排除静态依赖检测(detect-static-dependencies)、迁移到现有/已注册抽象(migrate-static-to-wrapper)、一个受阻行为加确定性测试(testability-obstacle),以及通用接口设计。
当用户想用 k6 对公开网站进行端到端性能测试、负载测试或压力测试时使用。生成混合(协议 + 浏览器)测试套件、基于 SLO 的阈值、负载生成器监控 sidecar,以及针对用户拥有的后端的 Grafana 调查手册。以下情况触发:“perf test my site”、“performance test my site”、“load test this URL”、“stress test my web app”、“I want to load test [URL]”、“set up k6 against my website”、“write a k6 suite for [site]”、“see if my site handles N concurrent users”或“how does my site perform under traffic”。只要用户提到 k6、负载测试、压力测试、性能测试,或想验证网站在流量下的表现,就使用此技能——即使他们没有明确使用“test”一词,或没有要求此技能生成的具体输出。此技能适用于跨多个工作流的完整多测试套件;若只需单个浏览器测试——功能测试,或测量单次流程 Web Vitals 的浏览器负载测试——则使用 k6-browser-test。
当被要求将现有的 C# 静态调用迁移、替换或改造为具名包装器或内置抽象时,务必使用:将 DateTime.UtcNow/Now 或 DateTimeOffset.UtcNow 迁移到 TimeProvider/IClock,将 File.* 迁移到 IFileSystem 或现有存储(如 ITextFileStore),将 Environment.* 迁移到现有读取器(如 IEnvironmentReader)。涵盖限定作用域的文件/项目、构造函数注入、用假实现替换依赖临时文件或进程环境的测试、「已注册」的抽象,以及调用方/签名必须保持不变的静态类。保留 DateTimeKind 和调用次数。不适用于查找静态依赖(detect-static-dependencies)、选择或设计新的包装器(generate-testability-wrappers)、未选定切点的行为测试(testability-obstacle),或测试框架迁移。
将 .NET 测试项目从 xUnit.net v2 迁移到 xunit.v3 并修复 v3 的不兼容问题。适用于:包/CPM 转换、OutputType=Exe、保留 VSTest 或 MTP runner(包括当前使用 YTest.MTP.XUnit2 的项目)、不兼容的 TFM、async void 测试、string-to-Type 属性、自定义 Fact/Theory/BeforeAfterTest 属性、Xunit.SkippableFact、xunit.abstractions/扩展性整合,以及 Xunit.Combinatorial/StaFact 兼容性。不适用于框架转换或仅 runner 的迁移。关于 xUnit v3 MTP 筛选器语法,请同时使用 migrate-vstest-to-mtp。
当 .NET 测试或 CI 从 VSTest 切换到 Microsoft.Testing.Platform (MTP),或 MTP 迁移的行为出现差异时,在回答、规划或编辑前使用此技能。触发条件包括「从 VSTest 切换」;MSTest/NUnit/xUnit 的 MTP 启用;仅在 Directory.Build.props 中为测试项目设置 OutputType=Exe;EnableMSTestRunner、EnableNUnitRunner、UseMicrosoftTestingPlatformRunner 或 YTest.MTP.XUnit2;.NET 10 global.json 中的 test.runner 和 TestingPlatformDotnetTestSupport;转换 VSTest 的 filter、logger、coverage、blame 或 dump 参数;替换 VSTest@3;以及退出代码 8 或零测试。在 xUnit v2 升级到 v3 期间遇到 xUnit v3 MTP 过滤器时也使用此技能。不适用于框架转换、TFM、UWP 或 WinUI。
当 MSTest v1/v2 项目正在升级到 v3 或为 v3 修复时,在回答或编辑前使用此技能。触发条件包括 QualityTools 程序集引用;MSTest.TestFramework/TestAdapter 1.x-2.x;“升级到 MSTest v3”;比较 v1 和 v2 迁移路径;选择 MSTest 或 MSTest.Sdk;v3 软件包升级后出现 CS0411/CS1503;DataRow 类型不匹配、MSTEST0014 或“Test data doesn't match method parameters”;将 .testsettings/LegacySettings 转为 .runsettings;超时变更;以及 net5.0 或其他 v3 已移除的 TFM。即使软件包显示 3.x,只要仍有迁移源代码错误或遗留设置,也要使用。保留 VSTest/MTP。不要用于干净的 v3 项目、v3 到 v4 迁移、框架转换或仅迁移运行器的情况。
在回答、规划或编辑任何 MSTest 3.x 到 4.x 的升级或升级后故障前,使用此技能。触发情况包括“MSTest v4 重大变更”;CS0507/CS0103/CS1061/CS1615;ExecuteAsync、CallerInfo、DisplayName 或自定义 TestMethodAttribute;ClassCleanupBehavior;ContainsKey;ThrowsExactly 或 ExpectedException;IsInstanceOfType 的 out 参数;TestTimeout.Infinite;ManagedType;net6/net7 兼容性;TestCase.Id 历史记录;ClassInitialize 中的 TestName;TreatDiscoveryWarningsAsErrors;干净构建后仍出现发现错误;以及 MSTest.Sdk/MTP 或 vstest.console 的发现变更。不要用于 v1/v2 到 v3 的遗留问题、框架转换、仅运行器迁移或一般的 .NET 升级。
在发布前校验自定义 dotnet new 模板的正确性。可发现字段缺失、参数缺陷、shortName 冲突、约束问题,以及导致模板静默失败的常见编写错误。适用于:发布或测试前检查 template.json 文件是否有错误、诊断模板安装后未出现的原因、审查模板参数定义中的类型不匹配和缺失默认值、查找与 dotnet CLI 命令的 shortName 冲突、校验 post-action 和 constraint 配置。不适用于:查找或使用现有模板(改用 template-discovery)、从模板创建项目(改用 template-instantiation)、从现有项目创建模板(改用 template-authoring)。
使用 Midscene CLI 进行视觉驱动的 iOS 设备自动化。完全依靠屏幕截图操作,无需 DOM 或无障碍标签。无论技术栈如何,都能与屏幕上所有可见元素交互。通过 WebDriverAgent 使用自然语言命令控制 iOS 设备。触发词:ios、iphone、ipad、ios app、tap on iphone、swipe、mobile app ios、ios device、ios testing、iphone automation、ipad automation、ios screen、ios navigate、test ios app、verify on iphone、QA on ipad、check the app on ios、test on ios device、see if the app works on iphone、end-to-end test on ios、visual verification on ios。由 Midscene.js 提供支持(https://midscenejs.com)
使用 Feathers 的《Working Effectively with Legacy Code》安全地修改和测试未经测试的代码库。用户提到“遗留代码”“没有测试”“未经测试的代码库”“如何测试这个”“接缝”“特征测试”“黄金主版本”“sprout method”“不敢改这段代码”“怪物方法”“打破依赖”或“接手了一个混乱的代码库”时使用。也适用于在没有测试的情况下安全修改代码、构造函数/静态成员/单例阻碍类的测试时让类可测试、为纠缠的模块添加功能,或为旧代码库规划渐进式测试覆盖。涵盖遗留代码修改算法、接缝、特征测试、sprout/wrap 和打破依赖的技术。重构已有测试的代码,请参阅 refactoring-patterns。日常代码质量请参阅 clean-code。
关键:用于不安全的 Rust 代码审查和 FFI。触发词:unsafe、raw pointer、FFI、extern、transmute、*mut、*const、union、#[repr(C)]、libc、std::ffi、MaybeUninit、NonNull、SAFETY comment、soundness、undefined behavior、UB、safe wrapper、memory layout、bindgen、cbindgen、CString、CStr、安全抽象、裸指针、外部函数接口、内存布局、不安全代码、FFI 绑定、未定义行为
使用 terraform-plugin-testing 和 Plugin Framework 编写 Terraform provider 验收测试的模式。涵盖测试结构、TestCase/TestStep 字段、使用自定义 statecheck.StateCheck 实现的 ConfigStateChecks、计划检查、用于跨步骤断言的 CompareValue、配置辅助工具、使用 ImportStateKind 进行导入测试、清理器、场景模式(基础、更新、消失、验证、回归),以及使用 echoprovider 包测试临时资源。适用于编写、审查或调试 provider 验收测试,包括有关 statecheck、plancheck、TestCheckFunc、CheckDestroy、ExpectError、导入状态验证、临时资源或测试文件结构的问题。
对精选的单项测试评估就绪度、A–F 质量等级并提出改进建议。以下情况始终使用:测试评分、只审查指定测试、对给定的方法、代码主体、文件片段或限定范围的 PR 差异进行逐项就绪度或质量评级,包括现有测试。返回 Pass/Failed/Uncertain/Not applicable;范围未解决或为空时不提供等级。汇总只读的逐项测试证据。支持多种编程语言。以下情况不要使用:测试套件审计(test-engineer/test-anti-patterns)、具体修复或功能检测证明(test-value-evidence)、编写或修复测试,或覆盖率分析。
将 python-pptx 导出结果与源 HTML 幻灯片进行审计,识别布局/内容偏差(页脚溢出、内容裁切、斜体/强调缺失、样式丢失、间距节奏不一致),并按照严格的页脚轨道 + 光标流布局规范重新导出。用户的 .pptx 由 HTML 幻灯片生成,且要求比较、审计、验证或修复导出结果时,始终使用此技能——包括“比较 ppt 与 html”“保真度审计”“修复 pptx”“ppt 被截断”“页脚重叠”“pptx 中斜体缺失”“重新导出演示文稿”“pptx-html-fidelity-audit”等说法,或任何需要验证或修复 python-pptx → HTML 往返转换的情况。用户并排展示 deck.html 和 deck.pptx 并排排查视觉差异时也触发。
为测试分析技能(assertion-quality、test-anti-patterns、test-gap-analysis、test-smell-detection、test-tagging)提供各语言参考文件的文件路径。阅读此目录以发现可用的扩展文件(例如 .NET/MSTest/xUnit/NUnit/TUnit 用 dotnet.md,pytest/unittest 用 python.md,Jest/Vitest/Mocha 用 typescript.md,JUnit/TestNG 用 java.md 等)。不要调用这个仅供参考的技能——其内置文件由质量 Agent 和需要框架专属查找表的分析技能读取(测试标记、断言 API、跳过注解、休眠模式、神秘来宾指标、集成标记、setup/teardown、标签支持能力)。
审查代码库、架构、PR 和技术方案中是否存在虚荣工程——代码和系统是为了满足开发者的自我、简历或智力乐趣而构建,而非创造用户或业务价值。遇到以下情况时触发:“审查这段代码”“这是不是过度设计了”“代码审查”“架构审查”“复杂度审计”“虚荣检查”“这有必要吗”“简化一下”“技术债审查”,或任何评估代码或架构是否符合实际需求的请求。用户分享代码库并征求反馈、讨论框架/库的选择、审查 PR,或有人讨论是否重构或重建时,也应触发。当你在用户分享的代码中发现不必要的抽象、过早优化或为简历而选择技术的模式时,即使用户没有要求虚荣审查,也应提示启用。
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
