Skills
收录 96,770 个为 Agent 打包的专项能力与操作指引,复制一行命令即可安装。
开发
通过 inference.sh,根据 React/Remotion 组件代码渲染视频。输入 TSX 代码即可获取 MP4。支持所有 Remotion API:useCurrentFrame、useVideoConfig、spring、interpolate、AbsoluteFill、Sequence。可配置分辨率、FPS、时长和编解码器。适用于:程序化视频生成、动态图形、动态设计、数据驱动视频、将 React 动画转换为视频。触发词:remotion、render video from code、tsx to video、react video、programmatic video、remotion render、code to video、animated video、motion graphics code、react animation video
为 PR、分支、文件、目录或功能提供端到端的分析埋点工作流。读取代码,找出应跟踪的事件,并一次性生成具体的埋点计划。用户希望为 PR 添加分析、提出“instrument this PR”“add tracking to this branch”“what analytics does this file need”“instrument the checkout flow”“run the full instrumentation workflow”,或提出任何暗示要从代码变更生成跟踪计划的请求时,使用此技能。如果用户提供 PR 链接、分支名称、文件路径或功能描述,并提及分析、事件或埋点,也应触发。它是分析工作流的主要入口,优先使用此技能,而不是分别调用各个步骤(diff-intake、discover-event-surfaces、instrument-events)。
找出此代码库中实际编写分析跟踪调用的方式,包括用于发送事件的具体 SDK 调用、函数签名和导入模式。在添加新的跟踪前需要了解现有分析埋点模式、有人询问“how do we track events here?”“show me the analytics setup”“what's the analytics pattern in this codebase?”,或即将运行 instrument-events 或 discover-event-surfaces 技能且需要了解应遵循的正确编码风格时,使用此技能。输出去重后的模式列表、通用示例、各模式所在的文件路径,以及根据这些调用点推断出的主要事件和属性命名规范。编写任何分析埋点代码前,始终使用此技能。
根据 change_brief YAML(由 diff-intake 输出)生成完整的候选分析事件列表,以便添加埋点。以具备产品经理思维的工程师视角,列出所有值得考虑的事项,让产品经理决定哪些才真正重要。作为分析埋点工作流的第 2 步,在 diff-intake 生成 change_brief 后立即使用。用户拥有 change_brief YAML 并想知道应添加哪些分析事件,或提出“what should I track for this PR”“what events should I instrument”“generate event candidates”,或任何旨在找出代码变更分析覆盖缺口的请求时触发。
根据 event_candidates YAML(由 discover-event-surfaces 输出),为优先级 3(关键)事件生成具体的埋点计划。以软件架构师的身份,找出代码库中现有的分析模式,读取提示的文件以确定作用域内的变量,设计精简且适用于图表的属性,并确定每个跟踪调用的精确插入位置。输出结构化 JSON trackingPlan。作为分析埋点工作流的第 3 步,在 discover-event-surfaces 之后使用。用户拥有 event_candidates 并希望生成跟踪代码,或提出“instrument these events”“generate tracking plan”“add analytics for these events”“where should I put the tracking calls”,或任何将候选事件转化为具体实施指导的请求时触发。
Golang 代码风格约定——行长与换行、变量声明、控制流清晰度,以及注释何时有帮助或有害。编写或审查 Go 代码、询问风格或清晰度,或制定项目编码标准时使用。不适用于命名规范(→参见 `samber/cc-skills-golang@golang-naming` 技能)、linter 配置(→参见 `samber/cc-skills-golang@golang-lint` 技能)或文档注释(→参见 `samber/cc-skills-golang@golang-documentation` 技能)。
适用于生产环境的 Golang 测试——表驱动测试、testify 测试套件与模拟、并行测试、模糊测试、测试夹具、使用 goleak 检测 goroutine 泄漏、快照测试、代码覆盖率、集成测试和符合惯例的测试命名。编写或审查 Go 测试、选择测试方法、设置 Go 测试 CI,或调试不稳定/缓慢的测试时使用。testify 专用 API 请参阅 `samber/cc-skills-golang@golang-stretchr-testify`;测量方法请参阅 `samber/cc-skills-golang@golang-benchmark`。
符合 Go 惯用方式的 Golang 错误处理——错误创建、使用 %w 包装、errors.Is/As、errors.Join、自定义错误类型、哨兵错误、panic/recover、单一处理规则、使用 slog 进行结构化日志记录、HTTP 请求日志中间件,以及用于生产环境错误处理的 samber/oops。旨在借助第三方日志聚合工具,让日志在大规模场景下仍然可用。创建、包装、检查或记录 Go 代码中的错误时应用。samber/oops 详情 → 参见 `samber/cc-skills-golang@golang-samber-oops` 技能;slog 处理器生态 → 参见 `samber/cc-skills-golang@golang-samber-slog` 技能。
驱动运行在 Limrun 云端 iOS 模拟器上的应用:启动、点击、输入、读取无障碍元素树、读取应用日志和模拟器系统日志、截屏、录制视频、将应用连接到本地服务或专用隧道、将视频文件用作摄像头画面、通过用户代理转发所有流量并信任其 CA、设置剪贴板、读写用户默认设置、发送通知,以及运行定时操作链。构建后(使用任何构建器均可),当用户想在模拟器上查看、测试或操作应用,或说“show me a screenshot”“tap”“run the UI test”“record a video”“read the logs”“connect localhost”“reach my local server from the simulator”“route all traffic through my proxy”“trust my CA”“mock the camera”“paste into the app”“change the language”“simulate Face ID”或“launch on simulator”时使用。要先构建应用,请使用 limrun-xcode-bazel(Bazel 工作区)或 limrun-xcode(xcodebuild 项目)。
在任意环境(Linux、Windows、macOS、VM、容器)中,使用远程 Xcode 通过 `lim xcode build` 而非本地 xcodebuild 构建 iOS / Apple 应用,使用 `lim xcode run` 运行项目命令,或使用 `lim xcode test` 运行 XCTest 测试套件。适用于非 Bazel 项目(`.xcodeproj` / `.xcworkspace`、使用被 git 忽略项目的 XcodeGen `project.yml`、React Native / Expo 原生构建),当用户想要构建、编译、运行代码生成或 Make 目标、测试、查看构建日志、重新加载、生成预览构建或发布签名设备 IPA 时使用。若要在模拟器上运行、点击、截图或以其他方式交互,请使用 limrun-ios-simulator。Bazel 工作区请使用 limrun-xcode-bazel。
旧版:使用 `lim xcode rbe` 在专用 Xcode 沙箱中构建 Bazel iOS 应用,并将其安装到连接该沙箱的远程 iOS 模拟器上。仅当工作区已使用 `lim xcode rbe`(其 `.limrun/` 由 `lim xcode rbe` 生成)、用户明确要求,或 `lim xcode rbe` 构建、上传或安装出现异常时使用。其他所有 Bazel 构建,包括新工作区、iOS 或 Android,以及在模拟器上运行应用,都使用 limrun-bazel。要点击、输入、截屏或以其他方式操作运行中的应用,请使用 limrun-ios-simulator。
把网页动画控制在帧预算之内 —— 只对合成属性做动画,页面繁忙时把运动放到主线程之外,动画掉帧时找出原因。涵盖布局/绘制/合成流水线、更低开销的属性替换、CSS 与 WAAPI 与 requestAnimationFrame 的对比、Framer Motion 的硬件加速路径、React 每帧重渲染、继承的 CSS 变量重算、模糊的代价,以及 `will-change` 真正有帮助的场合。适用于:动画卡顿、不流畅、出现停顿或掉帧时;选择要动画化的属性时;出于性能考虑在 CSS 动画与 JS 动画之间做决定时;或考虑使用 `will-change` 与 GPU 图层时。若要选择缓动、时长或是否要做动画,使用 animate;若要整体审查动效,使用 review-animations。
Golang 安全最佳实践与漏洞防护——注入(SQL、命令、XSS)、密码学、路径遍历、SSRF 和 HTTP 安全标头、Cookie、密钥管理、内存安全、日志中的 PII、STRIDE/DREAD 威胁建模,以及 `gosec` SAST、竞态检测和模糊测试。编写、审查或审计 Go 代码的安全性,或处理加密、文件或网络 I/O、密钥、用户输入或身份验证时使用。不适用于 nil panic 或切片别名等不可利用的防御性错误(→ 查看 `samber/cc-skills-golang@golang-safety` skill)、使用 govulncheck 扫描依赖漏洞(→ 查看 `samber/cc-skills-golang@golang-dependency-management` skill),或将安全扫描器接入 CI 流水线(→ 查看 `samber/cc-skills-golang@golang-continuous-integration` skill)。
符合 Golang 惯用风格的设计模式——函数选项、构造函数 API、`init()` 与避免全局状态、枚举、panic 与 error 的取舍、资源管理与生命周期、优雅关闭、超时与重试、流式处理与迭代器,以及架构风格(clean、hexagonal、DDD、flat)。在选择架构模式、实现函数选项、设计构造函数 API、设置优雅关闭、应用弹性模式,或询问某个问题适合哪种 Go 惯用模式时使用。不适用于配置 DI 容器或比较 DI 库(→ 查看 `samber/cc-skills-golang@golang-dependency-injection` skill),也不适用于错误包装、`errors.Is`/`As` 或日志机制(→ 查看 `samber/cc-skills-golang@golang-error-handling` skill)。
Golang 性能优化模式与方法论——如果 X 是瓶颈,则应用 Y。涵盖减少分配、提高 CPU 效率、内存布局、GC 调优、池化、缓存和热路径优化。在性能分析或基准测试已发现瓶颈、需要选择合适的优化模式来解决时使用。进行性能代码审查时也可使用,以提出改进建议或可能帮助发现快速性能提升的基准测试。不适用于测量方法(→参见 `samber/cc-skills-golang@golang-benchmark` skill)或调试工作流(→参见 `samber/cc-skills-golang@golang-troubleshooting` skill)。
Golang 并发设计——goroutine 生命周期与泄漏预防、通道和 `select`、通道所有权与方向、`sync.Mutex`/`RWMutex`/`sync.Map`/`sync.Once`/原子操作、`errgroup`、`singleflight`、工作池和扇出/扇入管道。在编写或审查并发 Go 代码、选择通道或互斥锁、保护共享 map 或计数器,或 goroutine 没有明确退出路径时使用。不适用于与并发无关的防御性编码,例如 nil panic、切片别名或数值溢出(→参见 `samber/cc-skills-golang@golang-safety` skill);也不适用于事后调试特定的卡住、崩溃或竞争程序(→参见 `samber/cc-skills-golang@golang-troubleshooting` skill)。
Go(Golang)命名约定——涵盖包、构造函数、结构体、接口、常量、枚举、错误、布尔值、接收者、getter/setter、函数选项、首字母缩写、测试函数和子测试名称。在编写新的 Go 代码、审查或重构代码、选择命名方案(New 与 NewTypeName、isConnected 与 connected、ErrNotFound 与 NotFoundError、iota 0 处的 StatusReady 与 StatusUnknown)、讨论 Go 包名(utils/helpers 反模式),或询问 Go 命名最佳实践时使用。用户提到 MixedCaps 与 snake_case、ALL_CAPS 常量、getter 使用 Get 前缀或错误字符串大小写时也会触发。不要用于不涉及命名决策的一般 Go 实现问题。
用于防范意外错误的 Golang 防御性编码——nil panic、typed-nil 接口、`append` 底层数组别名、静默的 int64 到 int32 截断、浮点数 `==` 比较、循环内的 `defer`、切片和 map 的防御性副本,以及易用的零值。当 Go 程序因 nil map 写入或 nil 指针解引用而 panic、审查代码的 nil 安全性、数值转换溢出或资源生命周期,或设计零值必须安全的类型时使用。不适用于使用 goroutine、通道或 sync 原语设计并发访问(→参见 `samber/cc-skills-golang@golang-concurrency` skill);不适用于注入、弱加密或秘密泄漏等可利用漏洞(→参见 `samber/cc-skills-golang@golang-security` skill);也不适用于调试已经出错的程序(→参见 `samber/cc-skills-golang@golang-troubleshooting` skill)。
Golang 数据结构——切片(内部机制、容量增长、预分配、slices 包)、map(内部机制、哈希桶、maps 包)、数组、container/list/heap/ring、strings.Builder 与 bytes.Buffer、泛型集合、指针(unsafe.Pointer、weak.Pointer)和复制语义。在选择或优化 Go 数据结构、实现泛型容器、使用 container/ 包、使用 unsafe 或弱指针,或探究切片/map 内部机制时使用。若性能分析已发现瓶颈,需要应用优化模式,则不适用(→参见 `samber/cc-skills-golang@golang-performance` skill)。
Golang 项目的 lint 最佳实践和 golangci-lint 配置——运行 linter、配置 .golangci.yml、使用 nolint 指令抑制警告、解读 lint 输出和选择 linter。在配置 golangci-lint、询问 lint 警告或 nolint 抑制、设置代码质量工具或选择 linter 时使用。用户提到 golangci-lint、go vet、staticcheck 或 revive 时也使用。不适用于将 lint 步骤接入 GitHub Actions 流水线(→参见 `samber/cc-skills-golang@golang-continuous-integration` skill)。
系统地排查 Golang 程序问题——找出并修复根本原因。Go 代码出现 bug、崩溃、死锁、竞态或意外行为时使用。涵盖调试方法、常见 Go 陷阱、测试驱动调试、pprof 设置与采集、Delve、竞态检测、GODEBUG 跟踪和生产环境调试。遇到任何“出了问题”的情况都从这里开始。不适用于解读性能分析结果或基准测试(→ 查看 `samber/cc-skills-golang@golang-benchmark` skill)、应用优化模式(→ 查看 `samber/cc-skills-golang@golang-performance` skill),或设计新代码(防御性编码请查看 `samber/cc-skills-golang@golang-safety` skill;并发设计请查看 `samber/cc-skills-golang@golang-concurrency` skill)。
Golang 日常可观测性——生产环境中持续采集的信号。涵盖使用 slog 的结构化日志、Prometheus 指标、OpenTelemetry 分布式追踪、通过 pprof/Pyroscope 持续性能分析、服务端 RUM 事件跟踪、告警和 Grafana 仪表板。在为生产监控配置 Go 服务、设置指标或告警、添加 OpenTelemetry 追踪、关联日志与追踪、将旧日志库(zap/logrus/zerolog)迁移到 slog、为新功能添加可观测性,或通过 Customer Data Platforms (CDP) 实现符合 GDPR/CCPA 的跟踪时使用。不适用于临时的深入性能调查(→ 查看 `samber/cc-skills-golang@golang-benchmark` 和 `samber/cc-skills-golang@golang-performance` skills)。
Golang 项目的依赖管理——go.mod 和 go.sum、`go get` 安装与升级流程、Minimal Version Selection、使用 replace/exclude/retract 解决冲突、通过 `govulncheck` 扫描模块树、过期依赖和二进制大小审计、vendoring、`tool` 指令以及 go.work 工作区。添加、移除或升级 Go 依赖、决定是否引入某个包、解决版本冲突,或审计模块引入的依赖时使用。涵盖依赖版本的选择与升级,不涉及周边工具:不要用于修复代码中可利用的漏洞(→ 查看 `samber/cc-skills-golang@golang-security` skill),也不要用于将 Dependabot/Renovate 更新机器人接入 CI 工作流(→ 查看 `samber/cc-skills-golang@golang-continuous-integration` skill)。
使用 EAS 将 Expo 应用部署到生产环境——构建并提交到 iOS App Store、Google Play Store 和 TestFlight,配置 eas.json 构建与提交配置,管理应用版本和构建号,发布 App Store 元数据和 ASO,并通过 EAS Hosting 部署 Web 包和 API 路由。用户准备生产构建、运行 eas build 或 eas submit、发布到 TestFlight、向应用商店发布或逐步推送、提升版本或构建号,或为 Expo 应用设置商店列表元数据时,均可使用。
在远程 Gradle 沙箱中使用 `lim gradle build` 构建 Android 应用,而非本地 Gradle 或 Android Studio;可在 Linux、Windows、macOS、VM 或容器等任意环境中使用。在用户想要构建 APK 或 AAB、使用上传密钥签署发布版本、准备 Play Store 发布、检查构建日志,或选择沙箱工具并运行 shell 命令时使用。适用于原生 Android 项目、React Native 和 Expo。若要在模拟器上运行、点击、截屏或以其他方式操作已构建的 APK,请使用 limrun-android-emulator。iOS 构建请使用 limrun-xcode 或 limrun-expo-development。
Golang CLI 应用开发。构建、修改或审查 Go CLI 工具时使用,尤其适用于命令结构、标志处理、配置分层、版本嵌入、退出码、I/O 模式、信号处理、Shell 补全、参数验证和 CLI 单元测试。代码使用 cobra、viper 或 urfave/cli 时也适用。cobra 专属 API → 参见 `samber/cc-skills-golang@golang-spf13-cobra` skill;viper 配置分层 → 参见 `samber/cc-skills-golang@golang-spf13-viper` skill。
Golang 依赖注入(DI)综合指南。涵盖 DI 的重要性(可测试性、松耦合、关注点分离、生命周期管理)、手动构造函数注入,以及 DI 库比较(google/wire、uber-go/dig、uber-go/fx、samber/do)。设计服务架构、设置依赖注入、重构紧耦合代码、管理单例或服务工厂,或用户询问控制反转、服务容器或 Go 依赖 wiring 时使用此 skill。关于特定 DI 库,请查看 `samber/cc-skills-golang@golang-google-wire`、`samber/cc-skills-golang@golang-uber-dig`、`samber/cc-skills-golang@golang-uber-fx` 或 `samber/cc-skills-golang@golang-samber-do` skills。
Golang 库和框架选型——按类别(Web、数据库、测试、日志、消息传递)筛选经过验证、可用于生产环境的选项,介绍新的和实验性的 stdlib 包、优先使用标准库的权衡,以及成熟度指标(维护情况、许可证、导入数量)。用户询问库的建议、比较替代方案、为特定任务选择库,或项目中需要新增依赖时使用。选定库后的具体 API 用法不适用(→ 查看该库专属的 skill,例如 `samber/cc-skills-golang@golang-samber-lo`);go.mod 机制、升级或漏洞审计也不适用(→ 查看 `samber/cc-skills-golang@golang-dependency-management` skill)。
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
