关于 review
review 是用于审查 Keboola 组件代码的技能,将代码质量与向后兼容性检查合并为一次流程。它要求先运行 ruff,并强调对公开仓库中的识别信息进行保密。
主要功能
- 01合并代码质量与兼容性审查
- 02优先运行 ruff 检查
- 03分析配置和输出变更
- 04按风险级别组织审查结果
- 05要求匿名化遥测数据
适用场景
- 01审查组件 Pull Request
- 02检查配置架构变更的兼容性
- 03在遥测不可用时评估变更风险
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ keboola/ ai-kit --skill review安装后在 Claude Code 中输入/review确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/breaking-changes.mdcode-quality.mdtelemetry.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”。