Help us improve
Share bugs, ideas, or general feedback.
From kafka-skills
Reviews Kafka schema changes (Avro, Protobuf, JSON Schema) for compatibility and evolution best practices using the Lenses MCP server. Detects breaking changes, missing defaults, schema drift and naming issues.
npx claudepluginhub lensesio/agentic-engineering-for-apache-kafka --plugin kafka-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/kafka-skills:kafka-schema-review [required: environment name] [optional: path to schema files][required: environment name] [optional: path to schema files]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Reviews schema changes for compatibility and evolution best practices. A single breaking schema change can take down every consumer of a topic.
Scan a project to identify Kafka applications, extract schemas from data models, tag PII fields, generate Terraform for Confluent Schema Registry registration, and produce a migration report with rollout ordering. Use this skill when a user asks to analyze a folder or repo for Kafka usage, extract schemas, audit producer/consumer configurations, or generate Terraform for Schema Registry.
Audits Kafka topic configurations against production best practices using the Lenses MCP server. Checks replication factor, retention, partitions, compaction, naming conventions, orphaned topics, and missing metadata.
Defines and evolves event schemas using Zod/JSON Schema, Avro, or Protobuf for Kafka, multi-service event exchange, and event-sourced systems with versioning.
Share bugs, ideas, or general feedback.
Reviews schema changes for compatibility and evolution best practices. A single breaking schema change can take down every consumer of a topic.
Target environment: $ARGUMENTS
Copy this checklist and track your progress:
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
references/compatibility-rules.md for file types)references/compatibility-rules.mdUse Lenses MCP tools to get the current state of schemas in the cluster:
list_topic_metadata - get all schemas registered against topics (key and value)get_topic_metadata - get the current schema for a specific topicget_dataset - get dataset field-level details, policies and governance metadatalist_datasets with schema_format filter - find all topics using a given format (AVRO, JSON, PROTOBUF)Expected output: Map of topics to their registered schemas (key and value) with format and version info.
Validation: If no schemas are registered, note this as a governance gap and proceed with codebase-only analysis.
Search the codebase for schema definition files. Consult references/compatibility-rules.md for the full list of file types and search patterns.
Use git diff to identify recently changed schema files if reviewing a PR.
For each schema change, evaluate against the compatibility rules in references/compatibility-rules.md. Check backward, forward and full compatibility depending on the topic's configured compatibility level.
Apply the quality checks from references/compatibility-rules.md:
Compare schema files in the repo against schemas registered in the cluster:
execute_sql to sample live data and verify it matches the expected schemaUser says: "Review the schema changes in this PR"
Actions:
git diff to find changed .avsc, .proto or .json schema filesUser says: "Audit all schemas in the staging environment"
Actions:
list_topic_metadataUser says: "Consumers are failing to deserialise messages from orders.payment.completed"
Actions:
get_topic_metadataexecute_sql to see actual message formatCause: Schema Registry is not configured or topics use schemaless formats (plain JSON, CSV). Solution: This is a valid finding - report it as a governance gap rather than an error. Recommend adding schema registration.
Cause: The cluster schema was updated independently of the repo (e.g., via Schema Registry UI). Solution: Report the drift and recommend syncing the repo to match the cluster as the source of truth.
Cause: Topic is empty, permissions are restricted or the topic uses an unsupported format.
Solution: Note the limitation in the report. Use get_topic_metadata as a fallback for schema information.
## 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