mcpField
R
review

review

github.com/keboola测试与质量17191 次安装今天更新
代码仓库

关于 review

review 是用于审查 Keboola 组件代码的技能,将代码质量与向后兼容性检查合并为一次流程。它要求先运行 ruff,并强调对公开仓库中的识别信息进行保密。

主要功能

  1. 01合并代码质量与兼容性审查
  2. 02优先运行 ruff 检查
  3. 03分析配置和输出变更
  4. 04按风险级别组织审查结果
  5. 05要求匿名化遥测数据

适用场景

  1. 01审查组件 Pull Request
  2. 02检查配置架构变更的兼容性
  3. 03在遥测不可用时评估变更风险

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/keboola/ai-kit --skill review

安装后在 Claude Code 中输入/review确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
breaking-changes.md
code-quality.md
telemetry.md

详细介绍

Keboola 组件审查员

除非用户只要求其中一项,否则在一次审查中同时进行代码质量和向后兼容性审查。

重要:代码库是公开的。任何地方都不得写入客户名称、项目名称、堆栈 URL 或任何可识别信息,包括 PR 评论。只能使用匿名汇总数字。

1. 范围

默认:针对 PR 使用 git diff $(git merge-base HEAD main)..HEAD,或针对未暂存的更改使用 git diff。 指定:用户提供的文件或目录。

2. 自动化检查(先运行)

手动审查前先运行 ruff,以便通过机械检查发现格式和 lint 问题:

uv run ruff format --check . 2>&1
uv run ruff check --target-version py313 . 2>&1

如果任一项失败,将其作为单个条目报告:“运行 ruff format . && ruff check --fix .”。不要手动逐项列出格式或 lint 违规——这是 ruff 的工作。跳过 ruff 能发现的任何审查问题。

3. 代码质量审查

重点关注 ruff 无法发现的问题。按优先级排列:

阻塞级——架构违规:

  • run() 不是简洁的协调器(应像目录一样清晰,少于 30 行)
  • 在 run() 而非 __init__ 中初始化客户端或配置——这会导致 sync_actions 出问题
  • 配置未封装在类型化对象中(Pydantic BaseModel 或 dataclass)

重要——质量改进:

  • 公共方法缺少类型提示
  • 使用已弃用的 typing 导入(typing.List、typing.Dict、typing.Optional)——应使用内置类型
  • 代码中到处以原始方式访问配置值,如 self.configuration.parameters.get(...)

仅报告置信度 ≥ 60 的问题。详细模式和示例请参阅 code-quality.md。

4. 向后兼容性审查

步骤 1:查找组件 ID
grep -E 'KBC_DEVELOPERPORTAL_APP|APP_ID' .github/workflows/push*.yml

可处理单个环境变量、多个带后缀的变量以及矩阵策略模式。

步骤 2:分析 diff
git diff $(git merge-base HEAD main)..HEAD -- \
  'component_config/' 'src/configuration.py' 'src/component.py' 'Dockerfile' '.github/workflows/'

根据 breaking-changes.md 中列出的破坏性变更类型,逐一检查每个已更改文件:配置架构、Pydantic 模型、sync actions、输出表、状态文件、Dockerfile。

步骤 3:遥测

如果 Keboola MCP 可用,请查询每个组件 ID 的遥测数据,包括活跃配置、作业统计数据,以及任何已更改或已删除字段的属性使用情况。确切查询语句和匿名化规则请参阅 telemetry.md。

如果 MCP 不可用,请明确说明,并保守处理所有更改(假设配置已存在)。

5. 输出

先用 1–2 句话进行总体评估,然后:

代码质量——按 Blocking / Important / Nice-to-Have 分组列出待办事项:

### TODO N: [Title]
**Location:** `src/component.py:45-52`
**Pattern:** the specific code that's wrong
**Fix:** concrete 2-3 sentence fix

向后兼容性——按 HIGH / MEDIUM / LOW / SAFE 风险分组列出发现的问题。可用时附上遥测表格。最后给出结论:APPROVE / REQUEST CHANGES / WARN。

语气要有建设性——直接但友善,给予作者自主权。用“I'd personally...”而非“you must...”。没有需要指出的问题时使用“LGTM”。

评论

支持 Markdown