feat: add backward compatibility review agent for component-developer plugin#53
feat: add backward compatibility review agent for component-developer plugin#53ZdenekSrotyr wants to merge 4 commits intomainfrom
Conversation
… plugin - New agent: backward-compatibility-reviewer (@backward-compatibility-reviewer) - New skill: review-backward-compatibility with SKILL.md - References: breaking-changes.md, telemetry-analysis.md - Telemetry-powered impact analysis via Keboola MCP - Structured review with severity levels and verdicts - Anonymized output - never exposes client/project identifiers - Bump component-developer plugin to 3.1.0 - Bump marketplace to 1.7.0 Co-Authored-By: unknown <>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: unknown <>
There was a problem hiding this comment.
Pull request overview
This PR adds a new backward compatibility review agent to the component-developer plugin. The agent reviews Keboola component PRs exclusively for backward compatibility issues (not code quality), checking whether changes could break existing user configurations, sync actions, or output tables. It integrates with Keboola telemetry data via MCP to assess real-world impact and enforces strict anonymization rules for public repositories.
Changes:
- Added
@backward-compatibility-revieweragent andreview-backward-compatibilityskill with comprehensive documentation - Integrated telemetry analysis via Keboola MCP (Project 133) for real-world impact assessment
- Created detailed reference guides for breaking change vectors and SQL query patterns
- Updated plugin to version 3.1.0 with corresponding marketplace and README changes
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
plugins/component-developer/agents/backward-compatibility-reviewer.md |
Agent definition with YAML frontmatter and overview of backward compatibility review capabilities |
plugins/component-developer/skills/review-backward-compatibility/SKILL.md |
Complete review procedure including component ID extraction, diff analysis, breaking change detection, telemetry queries, and structured review output |
plugins/component-developer/skills/review-backward-compatibility/references/breaking-changes.md |
Detailed guide covering all breaking change vectors across configSchema, Pydantic models, sync actions, output tables, Dockerfile, and state files |
plugins/component-developer/skills/review-backward-compatibility/references/telemetry-analysis.md |
SQL queries for telemetry data analysis with anonymization rules and workflow guidance |
plugins/component-developer/README.md |
Documentation update with new skill description, version bump to 3.1.0, and changelog entry |
plugins/component-developer/.claude-plugin/plugin.json |
Version bump to 3.1.0 and updated description |
.claude-plugin/marketplace.json |
Marketplace version update to 1.7.0 and component-developer plugin version to 3.1.0 |
README.md |
Main repository README updated to list backward compatibility review in skills |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ) as error_rate_pct | ||
| FROM "KBC_USE4_37"."out.c-kbc_public_telemetry"."kbc_job" | ||
| WHERE "kbc_component_id" LIKE '<COMPONENT_ID>%' | ||
| AND "job_start_at" >= DATEADD('day', -30, CURRENT_TIMESTAMP()) |
There was a problem hiding this comment.
The column name job_start_at appears to be incorrect based on the existing telemetry documentation. The telemetry-debugging.md file uses job_start_time for querying the kbc_job table. This should be updated to job_start_time to match the actual schema.
| AND "job_start_at" >= DATEADD('day', -30, CURRENT_TIMESTAMP()) | |
| AND "job_start_time" >= DATEADD('day', -30, CURRENT_TIMESTAMP()) |
There was a problem hiding this comment.
Fixed in 30dfd3f — changed job_start_at to job_start_time in both SKILL.md and telemetry-analysis.md to match the actual telemetry schema.
| ROUND(SUM(CASE WHEN "job_status" = 'error' THEN 1 ELSE 0 END) * 100.0 / NULLIF(COUNT(*), 0), 1) as error_rate_pct | ||
| FROM "KBC_USE4_37"."out.c-kbc_public_telemetry"."kbc_job" | ||
| WHERE "kbc_component_id" LIKE '<COMPONENT_ID>%' | ||
| AND "job_start_at" >= DATEADD('day', -30, CURRENT_TIMESTAMP()) |
There was a problem hiding this comment.
The column name job_start_at appears to be incorrect based on the existing telemetry documentation. The telemetry-debugging.md file uses job_start_time for querying the kbc_job table. This should be updated to job_start_time to match the actual schema.
| AND "job_start_at" >= DATEADD('day', -30, CURRENT_TIMESTAMP()) | |
| AND "job_start_time" >= DATEADD('day', -30, CURRENT_TIMESTAMP()) |
…queries Co-Authored-By: unknown <>
The actual column in kbc_job table is job_start_at (VARCHAR), not job_start_time. The previous commit incorrectly changed it based on Copilot suggestion referencing telemetry-debugging.md which itself has the wrong column name. Also fix DATEADD comparison - since job_start_at is VARCHAR, use TO_VARCHAR to convert the timestamp for string comparison. Co-Authored-By: unknown <>
Summary
Adds a new
@backward-compatibility-revieweragent andreview-backward-compatibilityskill to the component-developer plugin. This agent reviews component PRs exclusively for backward compatibility (not code quality), checking whether changes could break existing user configurations, sync actions, or output tables.The agent:
.github/workflows/push.yml(supports single, multi-env-var, and matrix patterns)New files:
agents/backward-compatibility-reviewer.md— agent definitionskills/review-backward-compatibility/SKILL.md— full review procedureskills/review-backward-compatibility/references/breaking-changes.md— detailed breaking change vectorsskills/review-backward-compatibility/references/telemetry-analysis.md— SQL queries and anonymization rulesUpdated files: plugin.json (→ 3.1.0), marketplace.json (→ 1.7.0), both READMEs (docs + changelog)
Review & Testing Checklist for Human
job_start_at— Thekbc_jobtable column isjob_start_at(VARCHAR), confirmed via live query against Project 133. Note: the existingtelemetry-debugging.mdindebug-componentskill usesjob_start_timewhich appears to be incorrect — consider fixing that file separately.TO_VARCHAR(DATEADD(...))date comparison pattern — Sincejob_start_atis a VARCHAR column (not TIMESTAMP), queries useTO_VARCHAR(DATEADD('day', -30, CURRENT_TIMESTAMP()), 'YYYY-MM-DD"T"HH24:MI:SS')for string comparison. This was validated live but the format string depends on the actual date format stored in the column.@backward-compatibility-revieweron an actualcomponent-*PR (ideally one with known breaking changes like a configSchema field removal) and verify the output is structured correctly, telemetry data appears, and no sensitive data leaks into the review comment.Suggested test plan:
@backward-compatibility-revieweragainst a component PR with a known configSchema changeNotes
color: redwhich matches the README but note the existingreviewer.mdagent usescolor: purple(README says 🔴 Red for both — minor inconsistency)/compat-review) was added, unlike the existing code quality reviewerkeboola.ex-sap-odata— Query 1 (active configs), Query 2 (job stats), Query 3 (config parameter usage), and Query 5 (stack distribution) all returned correct resultsUpdates since last revision
marketplace.jsonandplugin.jsonkbc_jobtable isjob_start_at(VARCHAR), notjob_start_time. The previous commit incorrectly changed it based on Copilot suggestion referencingtelemetry-debugging.mdwhich itself has the wrong column name.TO_VARCHAR(DATEADD(...))pattern sincejob_start_atis VARCHAR, not TIMESTAMPLink to Devin run: https://app.devin.ai/sessions/19cd1740b214413bad4da6ff3716d181
Requested by: @ZdenekSrotyr