用途:面向 Keboola Python 组件做完整代码评审,同时覆盖代码质量(架构、配置/客户端模式、类型提示、Python 最佳实践)与向后兼容性;除非用户只要求其中一项,否则一次运行两项。仓库为公开仓库,评审中不得写入客户名、项目名、堆栈 URL 等任何可识别信息,PR 评论亦然,只能使用匿名化的聚合数字。
范围:默认使用 git diff $(git merge-base HEAD main)..HEAD 针对 PR,或 git diff 针对未暂存改动;用户也可指定文件或目录。
自动检查:先运行 ruff。执行 uv run ruff format --check . 2>&1 与 uv run ruff check --target-version py313 . 2>&1;任一失败只报一条“run ruff format . && ruff check --fix .”,不手动罗列格式或 lint 问题,ruff 能发现的问题不重复报告。
代码质量评审关注 ruff 覆盖不到的部分,按优先级:阻塞级为架构违规,如 run() 不是清晰编排(应像目录,少于 30 行)、在 run() 内初始化客户端或配置(破坏 sync_actions)、配置未封装为带类型的对象(Pydantic BaseModel 或 dataclass);重要级包括公共方法缺少类型提示、使用已弃用的 typing.List/Dict/Optional(应改内置类型)、配置值以 self.configuration.parameters.get(...) 形式散落各处。只报告置信度不低于 60 的问题,详细模式见 code-quality.md。
向后兼容评审分三步:第一步用 grep -E 'KBC_DEVELOPERPORTAL_APP|APP_ID' .github/workflows/push*.yml 找组件 ID,兼容单个环境变量、多个带后缀变量与矩阵策略;第二步用 git diff $(git merge-base HEAD main)..HEAD -- 'component_config/' 'src/configuration.py' 'src/component.py' 'Dockerfile' '.github/workflows/' 分析差异,对照 breaking-changes.md 检查配置 schema、Pydantic 模型、sync actions、输出表、状态文件、Dockerfile 等破坏性变更路径;第三步在 Keboola MCP 可用时,对每个组件 ID 查询遥测(活跃配置、任务统计、变更或删除字段的属性使用),查询与匿名化规则见 telemetry.md;MCP 不可用需明确说明,并保守假设配置存在。
输出:先给 1-2 句总体评价;代码质量部分按 Blocking/Important/Nice-to-Have 分组 TODO,每条含标题、位置、问题模式、具体修复建议;向后兼容部分按 HIGH/MEDIUM/LOW/SAFE 风险分组,有遥测时附遥测表,最后给出 APPROVE / REQUEST CHANGES / WARN 结论。语气建设性,直接而友善,把主动权交给作者,无问题时说 LGTM。其余细节暂未提供。