关于 kafka-schema-review
kafka-schema-review 是用于审查 Kafka Schema 变更的技能,检查兼容性与质量实践。它会对照代码库定义和集群中注册的 Schema,报告漂移、破坏性变更及迁移建议。
主要功能
- 01通过 Lenses MCP 获取已注册 Schema
- 02扫描代码库中的 Schema 定义
- 03检查兼容性与 Schema 质量
- 04比对代码库和集群 Schema
- 05报告问题并提供迁移建议
适用场景
- 01合并前审查 Schema 变更
- 02审计预发布环境中的 Schema
- 03排查消费者反序列化失败
MCP 相关
使用 Lenses MCP 工具获取主题和数据集的 Schema 元数据,并在需要时抽样实时数据。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lensesio/ agentic-engineering-for-apache-kafka --skill kafka-schema-review安装后在 Claude Code 中输入/kafka-schema-review确认已加载。
附带文件references/compatibility-rules.mdreferences/test-cases.md
详细介绍
Kafka Schema Evolution 审查
审查架构变更是否兼容,以及是否遵循演进最佳实践。单个破坏性架构变更就可能导致某个主题的所有消费者都无法工作。
目标环境:$ARGUMENTS
工作流
复制此检查清单并跟踪进度:
Schema Review Progress:
- [ ] Step 1: Fetch registered schemas
- [ ] Step 2: Scan codebase for schema files
- [ ] Step 3: Detect breaking changes
- [ ] Step 4: Check schema quality
- [ ] Step 5: Check schema drift
- [ ] Step 6: Generate report
- 获取已注册的架构:通过 Lenses MCP 获取集群的实时信息
- 扫描代码库:查找架构定义文件(文件类型见
references/compatibility-rules.md) - 检测破坏性变更:依据
references/compatibility-rules.md中的兼容性规则进行检查 - 检查架构质量:依据最佳实践进行检查
- 检查架构漂移:检查代码库与集群之间的差异
- 报告发现:提供迁移指导
第 1 步:获取已注册的架构
使用 Lenses MCP 工具获取集群中架构的当前状态:
list_topic_metadata- 获取针对主题注册的所有架构(键和值)get_topic_metadata- 获取特定主题当前的架构get_dataset- 获取数据集的字段级详细信息、策略和治理元数据- 使用
schema_format筛选条件调用list_datasets- 查找使用指定格式(AVRO、JSON、PROTOBUF)的所有主题
预期输出:主题与其已注册架构(键和值)的映射,包含格式和版本信息。
验证:如果未注册任何架构,请将此情况记为治理缺口,并继续仅基于代码库进行分析。
第 2 步:检查代码库
搜索代码库中的架构定义文件。有关完整的文件类型列表和搜索模式,请参阅 references/compatibility-rules.md。
如果在审查 PR,请使用 git diff 找出近期更改的架构文件。
第 3 步:兼容性检查
针对每项架构变更,依据 references/compatibility-rules.md 中的兼容性规则进行评估。根据主题配置的兼容性级别,检查向后兼容性、向前兼容性和完全兼容性。
第 4 步:架构质量检查
依据 references/compatibility-rules.md 中的质量检查项进行检查:
- 缺少文档注解的字段
- 可选字段缺少默认值
- 命名规范不一致
- 未使用或过于笼统的字段名
第 5 步:检测架构漂移
将代码库中的架构文件与集群中注册的架构进行比较:
- 使用
execute_sql抽样查询实时数据,并验证其是否符合预期架构 - 标记代码库中与已注册架构不同的架构
- 标记已注册架构但在代码库中没有对应文件的主题
成功标准
定量标准
- 能响应 90% 的架构相关查询(使用 10-20 种不同表述进行测试)
- 在 12 次工具调用以内完成审查(MCP + 代码库搜索)
- 破坏性变更检测的误报数为 0
定性标准
- 对破坏性变更提供明确的迁移指导
- 报告架构漂移时同时列出代码库和集群中的版本
- 质量问题无需外部文档即可采取行动
示例
示例 1:合并前架构审查
用户说:“审查此 PR 中的架构变更”
操作:
- 运行
git diff,查找已更改的.avsc、.proto或.json架构文件 - 通过 Lenses MCP 获取集群中当前已注册的架构
- 根据兼容性规则评估每项变更 结果:报告列出所有破坏性变更,并提供迁移指导
示例 2:全面架构审计
用户说:“审计 staging 环境中的所有架构”
操作:
- 通过
list_topic_metadata获取所有已注册的架构 - 扫描代码库中的架构文件
- 检查代码库与集群之间的漂移
- 对所有架构进行质量检查 结果:提供涵盖兼容性、质量和漂移的全面报告
示例 3:调查消费者故障
用户表示:“消费者无法反序列化来自 orders.payment.completed 的消息”
操作:
- 通过
get_topic_metadata获取该主题的已注册架构 - 使用
execute_sql对实时数据进行抽样,查看实际消息格式 - 将实际格式与仓库中的架构文件进行比较 结果:诊断出架构不匹配,并提供修复步骤
故障排查
集群中未注册任何架构
原因:未配置 Schema Registry,或主题使用无架构格式(纯 JSON、CSV)。 解决方案:这属于有效发现,应将其报告为治理方面的差距,而非错误。建议添加架构注册。
检测到架构偏移,但这是有意的
原因:集群架构在仓库之外独立更新(例如,通过 Schema Registry 界面)。 解决方案:报告偏移情况,并建议将仓库同步为与集群一致,以集群为事实来源。
无法使用 execute_sql 对数据进行抽样
原因:主题为空、权限受限,或主题使用了不受支持的格式。
解决方案:在报告中注明此限制。可使用 get_topic_metadata 作为获取架构信息的备用方式。
输出格式
## Schema Review Report
### Environment: {name}
### Breaking Changes (must fix before merge)
- [schema-file] Description of the breaking change
Affected topics: {list}
Migration: {guidance}
### Compatibility Warnings
- [schema-file] Description of the issue
Recommendation: How to fix it
### Schema Quality
- [schema-file:field] Description of the quality issue
Recommendation: How to improve it
### Schema Drift
- [topic-name] Schema in repo differs from registered schema
Repo version: {summary} | Cluster version: {summary}
### Summary
- X breaking changes found
- Y compatibility warnings found
- Z quality issues found
- Schema files scanned: N
- Topics with drift: M