AgentHubAgentHub

使用场景/代码审查与 GitHub

代码审查 / GitHub MCP 推荐

拉取 PR、读 diff、查 Issue、管理仓库。适合 Code Review、发布说明、CI 问题排查。

共匹配 6,813 个资源 · 第 65 / 142 页

什么是代码审查与 GitHub?

GitHub MCP 让 AI 进入你的协作流程:拉取 PR diff 做代码审查、检索 Issue 历史定位已知问题、读取 CI 日志分析构建失败、汇总提交生成 changelog。官方 github/github-mcp-server 通过 GitHub API 或个人访问令牌(PAT)鉴权,Gitee / GitLab 也有对应实现。

Code Review 实践:把团队的评审规范写成 Skill(如「检查竞态、边界、错误处理,按严重度输出」),配合 GitHub MCP 让 AI 先过一遍 PR,人工只看 AI 标出的高风险行——审查耗时通常明显下降,且低級错误漏检更少。

权限建议:使用细粒度 PAT(只授予目标仓库 contents / pull-requests 读写),组织仓库务必开只读起步;让 AI 发布评论或合并前先要求确认,防止误操作污染协作记录。

适合做什么

  • PR 自动审查
  • 生成 changelog
  • 跨仓库 Issue 检索
  • 依赖安全告警跟进

不太适合

  • 替代人工安全审计
  • 在无授权仓库上操作

相关资源

查看全部 →

编写 Ginkgo 规格

SkillSkillsMP

编写优秀的 Ginkgo spec——容器节点(Describe/Context/When)、主题节点(It/Specify)、setup/cleanup 节点(BeforeEach、JustBeforeEach、AfterEach、DeferCleanup、BeforeSuite/AfterSuite)、“容器内声明、BeforeEach 中初始化”规则、创建与配置分离、用 GinkgoHelper()/GinkgoHelperGo() 的可复用测试助手,以及 By/GinkgoWriter 输出。在编写或审查 spec 或提取测试助手时使用。涵盖构树期陷阱(容器体内不要放断言/初始化/循环捕获)。

source

CursorQB 实现器

SkillSkillsMP

CursorQB 流程中带关卡的第 4 步(目标驱动)—— 从已审计的计划中实现一个范围受限、可回滚、可验证的小切片。在第 3 步审计通过后、用户批准实现时使用,或通过 /cursorqb-implement 调用。仅当审计结果为 PASS 或 PASS_WITH_WARNINGS 且不存在 P0/P1 问题时才运行;否则会停止并建议先修复。挑选单个 READY 子计划,先定义校验命令,做最小改动,并在声称完成前先验证。

source

CursorQB 子规划器

SkillSkillsMP

CursorQB 规划流程的第 2 步(目标驱动)。把 Planner-docs/Main-Planing.md 中的每个主阶段拆解为 Planner-docs/Faz-<n>-Plans/ 下的详细子计划,并生成 Sub-Planing-Index.md。由 define-goal 技能作为 Cursor 目标自动启动,会一直运行直到覆盖所有阶段 —— 不会做完一个阶段就停下。可从 cursorqb-planner 的关卡 1 调用,或直接调用来(重新)生成子计划。只改动 Planner-docs/ 下的文件。

source

CursorQB 规划器

SkillSkillsMP

具备仓库感知输入的五步(1、1.5、2、3、4)目标驱动项目规划总控。当用户运行 /cursorqb-plan 或要求 CursorQB 端到端规划项目时使用 —— 总计划、既有项目体检、阶段拆解、覆盖度审计,随后是可选的实现环节。先执行仓库感知的第 1 步输入并产出 Planner-docs/Main-Planing.md;对既有项目运行第 1.5 步体检(cursorqb-autopsy);再逐关卡进入阶段拆解(cursorqb-subplanner)、覆盖度/质量审计(cursorqb-auditor)与受控实现步骤(cursorqb-implementer)—— 均通过 define-goal 作为 Cursor 目标自动启动。每一步都用自带校验器验证。

source

CursorQB 项目体检

SkillSkillsMP

CursorQB 规划流程的第 1.5 步(目标驱动),对既有项目做体检。在第 1 步之后(或直接)使用,检查已有或部分完成的仓库并写出 Planner-docs/Autopsy.md —— 一份 13 节的技术反馈报告,用于充实第 2 步的子计划。对非空的既有仓库会自动执行,空或近乎为空的仓库则跳过。由 define-goal 技能作为 Cursor 目标自动启动;只会创建/更新 Planner-docs/Autopsy.md。

source

CursorQB 审计员

SkillSkillsMP

CursorQB 规划流程的第 3 步(目标驱动),对第 2 步的子计划做质量、覆盖度、一致性与就绪度审计。用于校验 Planner-docs/Faz-*-Plans/*.md 与 Sub-Planing-Index.md 是否忠实于 Main-Planing.md、是否完整、有序、结构良好且可实施。由 define-goal 技能作为 Cursor 目标自动启动,会持续到每个阶段与子计划都被检视完毕;仅生成 Planner-docs/Sub-Planing-Audit.md 并返回 PASS / PASS_WITH_WARNINGS / BLOCKED。单独运行以复审也是安全的。

source

CKEditor 5 测试

SkillSkillsMP

在 Trilium monorepo 中测试 CKEditor 5 插件。适用于为 packages/ckeditor5-* 包添加或评审单元测试、调试失败的测试,或为包搭建测试运行器。涵盖 Trilium 使用的两种 Vitest 环境(happy-dom 与 WebdriverIO 浏览器模式)、各包的 vitest.config.ts、基于真实 ClassicEditor 的测试、从 'ckeditor5' 导入的 model/view 辅助函数(_setModelData/_getModelData/_getViewData 及 {}/[] 选区语法)、vi spy/mock、schema/转换/命令/UI 测试的惯用写法、pnpm --filter 运行方式,以及 Trilium 特有的约定与坑。与 ckeditor5-plugin-development 和 writing-unit-tests 互补。

source

编辑器 Agent 标签页

SkillSkillsMP

说明 Leap Monitor 如何展示只读的编辑器 GUI 智能体行 —— 既包括 Cursor(编辑器)的 Agent/Composer 标签页,也包括 VS Code Copilot Chat 会话。涵盖磁盘扫描(scan_open_cursor_agents、scan_open_vscode_copilot_sessions)、状态映射、经共享 Leap 扩展跳转、合成行对齐、关闭按钮(Cursor 关闭标签页 / VS Code 移除行),以及共享的 GUI_TAG_PREFIXES/GUI_ROW_TYPES 底层通路。在改动 cursor_gui_scan.py、vscode_copilot_scan.py、编辑器 GUI 智能体行或编辑器聊天跳转逻辑时使用。

source

TypeScript LSP

SkillSkillsMP

在 clickhouse-js 仓库中使用 TypeScript 语言服务器(typescript-language-server)进行精确的代码智能:转到定义、查找引用、悬停(类型签名与 JSDoc,含 @deprecated 信息)、全工作区符号搜索、补全与逐文件类型诊断。当需要解析符号的实际定义、查找导出 API 的所有用法或跨 packages/* 工作区检查推断类型时,优先使用它而非 grep。该服务器作为根 devDependency 预装——请先运行仓库的 setup 技能(npm install)以填充 node_modules。不要将本技能用于仅依赖 @clickhouse/client 的下游项目;它专用于在本仓库内工作。

source

Table 可编辑单元格

vbeta

SkillSkillsMP

用 `@tanstack/react-form` 为 `@tanstack/react-table` v9 提供可编辑单元格。表格是布局原语,编辑状态由表单负责。用 `createFormHook` 注册可复用的字段组件(`TextField`、`NumberField`、`SelectField`),然后在每列的 `cell` 中返回 `<form.AppField name={`data[${row.index}].field`}>{(field) => <field.TextField />}</form.AppField>`。关键类型坑点:如果行数据里存在递归的 `subRows`,表单的行类型要用 `Omit<Row, 'subRows'>`——TanStack Form 的 `DeepKeys` 会递归并触发 TS2589。行的增删重渲染应订阅 `form.state.values.data.length`,而不是整个数组。

source

客户端表格转服务端

vbeta

SkillSkillsMP

把客户端的 `@tanstack/react-table` v9 表格转为服务端模式(manual 系列开关)。将服务端分页/排序/过滤后的行作为 `data` 传入,为服务端现在负责的部分设置 `manualPagination` / `manualSorting` / `manualFiltering` / `manualGrouping` / `manualExpanding`,提供 `rowCount` 以便 `getPageCount()` 可用,并从 `tableFeatures()` 中删除对应的工厂(服务端分页就不再放 `paginatedRowModel` 槽位)。通过外部 atom(`useCreateAtom` 加 `options.atoms`)自己托管相关状态切片,让查询能以该切片为 key 并自动重新请求;或者继续使用经典的 `state` 加 `on*Change` 受控状态。

source

Table 生产级优化

vbeta

SkillSkillsMP

`@tanstack/react-table` v9 可直接上生产的优化手段:只注册你真正用到的 `features` 以缩减包体积;对 `features`、`data` 与 `columns` 做记忆化以保持引用稳定;用窄 selector 或按切片的 `useSelector(table.atoms.<slice>)` 订阅替代 `(state) => state`;并借助 `<table.Subscribe>` 与 `<Subscribe>` 把状态驱动的重渲染下沉到树的更深处,避免每次切换排序指示器都重渲染昂贵的表体。小表格不要过度优化——默认 selector 加内联渲染在性能未经测量验证前完全够用。

source

React Table 状态响应式

vbeta

SkillSkillsMP

为 `@tanstack/react-table` v9 接入响应式。内容包括 `useTable` 及其第二个 selector 参数、通过 `table.state` / `table.store` / `table.atoms.<slice>` 读取状态、用 `table.FlexRender` 渲染、用 `<table.Subscribe>` 与独立的 `<Subscribe>` 让子树获得细粒度响应、通过 `useCreateAtom` 加 `options.atoms` 用外部 atom 自己托管切片,以及用 `createTableHook` 把共享配置打包成可复用 hook(`useAppTable`、`createAppColumnHelper`、`table.AppTable` / `table.AppHeader` / `table.AppCell` / `table.AppFooter`)。路由关键词:useTable、useSelector、useCreateAtom、atoms、react-store、table.Subscribe、FlexRender。

source

常见问题

GitHub MCP 需要 OAuth 还是 Token?

本地 stdio 部署用个人访问令牌(推荐细粒度 PAT)最简单;多用户托管场景才需要 GitHub App / OAuth。环境变量名见资源详情页。

AI 审查会漏掉安全问题吗?

会。它是第一道过滤而非替代:语义类缺陷检出不错,但供应链、越权逻辑仍需专业审计与人工评审兜底。

私有仓库安全吗?

取决于模型提供方与令牌权限。企业内网可选本地模型 + 只读令牌;令牌务必设置过期与最小 scope,并定期轮换。

配套安装与配置教程

相关场景