Skills
收录 97,222 个为 Agent 打包的专项能力与操作指引,复制一行命令即可安装。
测试与质量
作为前端工作中 UI/UX 的质量门禁,适用于实质性影响 Web 产品界面的场景:设计/构建/重设计/评审/打磨/重构页面或组件体系、截图/UX 评审、拯救看起来像 GPT/Codex 生成的 UI、技术栈或 UI 基础选型、shadcn/Tailwind/表格/表单模式、加载/空态/错误/移动端/无障碍状态,或安装 DESIGN.md、FRONTEND_CONTRACT.md、PAGE_BRIEF.md 等前端治理文档与视觉 QA 规范。对于小型的 UI 敏感改动,使用 Tiny change gate 轻量触发。当被要求构建精致界面时,与视觉实现类技能协同;本技能提供产品认知、UX 判断、护栏和验证。纯后端/API/数据/模型改动、无 UI 界面的测试、机械式重命名、依赖维护,或不影响布局、交互、文案、视觉表现、无障碍与前端规则的改动,则跳过。
通过 CDP 驱动 Iliyas 的 Windows PC 上真实的 Chrome——也就是他本人使用、已登录其账号(Vercel、Google Cloud、Heroku 等)的同一个浏览器。用它获取位于其登录之后的数据、实时打开并调试页面、一起观看某个流程、拦截请求,或设置浏览器的代理 / 出口国家。当 Iliyas 要求使用他的真实 / 主机 / Windows 浏览器时,或当你自己遇到无头浏览器或命令行无法完成的任务(Cloudflare 挑战、验证码、位于其登录之后的页面)时使用——它做的一切都会显示在他的屏幕上,因此要说明你打开了什么。
WordPress 迁移与升级审查。用于审查数据库迁移、选项版本管理、升级例程、数据回填、dbDelta 使用、发布兼容性、回滚风险,或当用户提到“migration review”“upgrade routine”“dbDelta”“plugin upgrade”“data migration”“version bump”“backfill”“schema change”或“backwards compatibility”时。检测 WordPress 代码中不安全的迁移、缺失的版本守卫、破坏性数据变更和升级流程风险。
使用此 skill 应用 Android 团队的测试策略——确定性、封闭式执行、Given-When-Then / Arrange-Act-Assert 结构、命名约定,以及基于 Hilt 的依赖替换。明确哪些指导实际位于 `/training/testing/fundamentals/strategies`(定性金字塔、网络访问表)、哪些位于 `/training/testing/instrumented-tests/stability`(确定性 / 不稳定)、哪些位于 `/training/dependency-injection/hilt-testing`(`@HiltAndroidTest`、`HiltAndroidRule`、`@TestInstallIn`、`@UninstallModules`、`@BindValue`、规则顺序)。适用于用户询问 "how should I structure tests"、"Given When Then or Arrange Act Assert"、"how do I name test methods"、"Hilt rule order"、"@HiltAndroidTest"、"@BindValue"、"how to swap a binding for tests"、"tests pass locally fail on CI" 或 "make tests deterministic"。
使用此技能可在 UI 测试中通过 `assertExists`、`assertDoesNotExist`、`assertIsDisplayed`、`assertIsNotDisplayed`、`assertIsDeactivated`、`assertIsEnabled`、`assertIsOn`、`assertIsOff`、`assertIsSelected`、`assertIsFocused`、`assertTextEquals`、`assertTextContains`、`assertContentDescriptionEquals`、`assertValueEquals`、`assertRangeInfoEquals`、`assertHasClickAction`,以及通用的 `assert(matcher)` 兜底方法和用于 `waitUntil` 谓词的布尔值 `isDisplayed()` / `isNotDisplayed()`,来验证 Compose 语义节点的属性。涵盖集合变体 `assertCountEquals`、`assertAny`、`assertAll`。当开发者想验证 Switch 处于开启状态、Button 处于启用状态、Text 显示预期字符串、节点是已显示还是仅被组合,或询问 `assertIsDisplayed` 与 `assertExists` 的区别时使用。若开发者提到 `SemanticsNodeInteraction` 上的任何 `assert*` API,请使用此技能。
使用本 skill 在真实 Android 设备或模拟器上将每个 Jetpack Compose `@Preview` 渲染为截图,并从 CI 发布可浏览的 HTML 目录。涵盖 Compose HotSwan Gradle 编译器插件(`com.github.skydoves.compose.hotswan.compiler`)和 `debugImplementation("com.github.skydoves.compose.hotswan:preview")`、`captureAllPreviews` 任务、通过 `HotSwanPreviewActivity` + `screencap` 经 ADB 捕获单个预览、`hotSwanCompiler { preview { renderDelayMs; demoMode; sdkModeEnabled } }` DSL、按预览的 `@PreviewScreenshot(renderDelay = …)`、在 GitHub Actions 中的模拟器上运行(`reactivecircus/android-emulator-runner` 或 Gradle Managed Devices)并将目录部署到 GitHub Pages,以及设备渲染与宿主机 JVM 工具(Paparazzi、Roborazzi)的差异。当用户提到“captureAllPreviews”、“HotSwan”、“preview screenshots in CI”、“screenshot catalog”、“preview catalog on GitHub Pages”或“Paparazzi vs Roborazzi vs device screenshots”时使用。
使用此技能,借助 Google 的五类状态词汇表以及来自 `/training/testing/fundamentals/what-to-test` 的明确"不应测试什么"清单,挑选出要在 Android 测试套件中覆盖哪些行为。涵盖屏幕上的状态、内存中保持的状态(ViewModel)、持久化状态(DB / DataStore / 文件)、其他状态(系统栏 / 系统服务)以及错误 / 边界情况。包含 Google 逐字列出的"应避免的测试"清单(activity / fragment / service 等框架入口点不应包含业务逻辑)以及一份边界情况挖掘清单。当用户询问 "what should I write tests for"、"should I unit-test this Activity"、"do I need a test for this util class"、"what edge cases am I missing" 或 "should I test the ViewModel or the Composable" 时使用。
ASP.NET Core WebApi 整合测试完整指南。当需要对 WebApi 端点进行整合测试或验证 ProblemDetails 错误格式时使用。涵盖 WebApplicationFactory、IExceptionHandler、Testcontainers 多容器编排、Flurl URL 构造与 AwesomeAssertions HTTP 验证。 Keywords: webapi integration testing, WebApplicationFactory, asp.net core integration test, webapi 整合测试, IExceptionHandler, ProblemDetails, ValidationProblemDetails, AwesomeAssertions, Flurl, Respawn, Be201Created, Be400BadRequest, 多容器测试, Collection Fixture, 全域例外处理
使用此 skill 通过 `adb pull` 和 `adb push` 在主机与设备之间传输文件,包括现代标志 `-z`(压缩)、`-Z`(不压缩)、`--sync` 和 `-a`(保留属性)。涵盖路径权限规则——`/data/local/tmp/` 可自由写入,`/sdcard/`(别名 `/storage/emulated/0/`)在 API 30+ 上按分区存储规则可由 shell 写入,`/data/data/<pkg>/` 在可调试构建上需要 `run-as <pkg>`,而 `/sdcard/Android/data/<pkg>/files/` 归应用包所有但可拉取。包括用于获取文本的 `adb shell run-as <pkg> cat <path>`、用于干净获取二进制目录的 `adb exec-out run-as <pkg> tar cf - <path> | tar xf -`、Gradle 输出目录 `connected_android_test_additional_output/`,以及用于现代产物收集 API 的 `androidx.test:services` `useTestStorageService` 标志。如果用户提到 "adb pull permission denied data data"、"run-as"、"scoped storage shell"、"tar through adb"、"test storage service" 或 "exec-out vs shell for binary",请使用此 skill。
驱动 Dart 或 Flutter 包在四项关卡(analyze、format、test、coverage)上通过验证—修复—重跑循环完全变绿。它负责关卡配置,因此仅规划类问题也属于此技能:每项关卡运行哪个工具和参数、以何顺序运行、覆盖率目标,以及什么不计入覆盖率分母。当出现“green gate”“make it green”“get CI green”、修复所有 analyze 和 test 失败、在 PR 前清理包、将覆盖率提升到 100、循环直到全部通过,或确认包已变绿时使用。当用户想弱化或跳过某项关卡时也应使用:降低覆盖率阈值、在未测试或生成的代码上添加覆盖率忽略注释、因为此前已通过而跳过 analyze 和 format、把一个 94% 的包称为完成,或在相同失败反复出现时重试。优先于单一关卡的 testing 或 analysis 技能使用。
跨 iOS、Android、Flutter 和 React Native 构建、测试、签名并发布移动应用——项目脚手架、构建与代码签名、真机与模拟器测试、商店提交(App Store 和 Play Store)、应用生命周期与后台运行、离线与同步,以及移动端专属测试。当任务涉及为 iOS 或 Android 创建、构建、测试或发布移动应用,或需要推理移动行为(如后台执行、推送通知、离线存储和数据同步)时使用。不适用于 Web 前端工作(属于 frontend-engineering)、后端服务与 API(属于 backend-engineering),或 iOS 和 Android 范围之外的桌面与 Web 平台目标。
使用本技能可将 Mockito(Android 领域占主导地位的 mocking 框架,androidx 自身也只使用它)接入 JVM 单元测试套件。涵盖 `org.mockito:mockito-core:5.x` 以及 `org.mockito.kotlin:mockito-kotlin:5.x` Kotlin DSL —— `mock<T>()`、`whenever`、`argumentCaptor<T>()`、`any()` / `anyOrNull()` / `eq()`、`MockitoJUnit.rule()` 与 `MockitoAnnotations.openMocks(this)` 两种生命周期的取舍、用于 Kotlin final 类的 inline mock-maker(`mock-maker-inline` 插件文件)、针对 instrumented 场景下 final 类 mock 的 `@SdkSuppress(minSdkVersion = 28)`,以及通过 `runBlocking` 进行 suspend 打桩的变通手段。当用户提到 `whenever`、`Cannot mock final class`、`InvalidUseOfMatchersException`、`@Mock null`、`MockitoJUnitRunner`、`argumentCaptor`、`mock-maker-inline`,或询问如何用 mockito-kotlin 进行 mock 时使用。
使用此 skill 整理 Android 测试源集——`src/test/`、`src/androidTest/`、社区惯例 `src/sharedTest/`,以及 Compose 自身在 AGP 7.2 破坏经典 `sourceSets` 接线后采用的现代 KMP 风格 `androidHostTest` / `androidDeviceTest` 拆分。包含按 Google 的 `/training/testing/local-tests` 和 `/training/testing/instrumented-tests` 页面整理的 `testImplementation` / `androidTestImplementation` / `debugImplementation` 配置矩阵。适用于用户询问 "where do I put my tests"、"test or androidTest"、"sharedTest setup"、"AGP 7.2 broke my sourceSets"、"androidHostTest vs androidDeviceTest"、"testImplementation vs androidTestImplementation vs debugImplementation" 或 "why is my Robolectric test in androidTest"。
使用此 skill 为 Android 测试选择合适的测试替身——fake、mock、stub、spy、dummy 或 Robolectric shadow。收录 Google 的原话偏好顺序("fakes ... are preferred"、"Fakes are preferred over stubs for simplicity"、"Fakes or mocks are therefore preferred over spies"),给出 Android 示例(内存中的 `FakeUserRepository`、`mockk<UserRepository>()`、`ShadowSystemClock`),并提供将意图映射到正确替身的决策矩阵。适用于用户询问 "fake or mock"、"should I use Mockito here"、"how do I replace this dependency in tests"、"what's the difference between a stub and a mock"、"spy vs mock",或提到 `mockk`、`every { } returns`、`verify { }`、`org.mockito`、`argumentCaptor`、`Robolectric` shadow、`ShadowSystemClock` 或 `FakeRepository`。
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
