Consolidate 6 plugins into a single keboola plugin - #88
Open
claude[bot] wants to merge 3 commits into
Open
Conversation
Merge component-developer, dataapp-developer, keboola-cli, keboola-git, powerbi-to-sl, and sl-toolkit into one plugin at plugins/keboola, with all 18 skills grouped by area (documented in the README; skills stay flat under skills/<skill-name>/ so invocation names are unchanged). - plugin.json (name: keboola, version: 1.0.0) merges both declared MCP servers: keboola standardized on the modern `http` transport (was `sse` in dataapp-developer, `http` in keboola-cli; same endpoint), plus playwright carried over verbatim. Keywords merged across the six. - All 12 commands and 14 agents merged with zero filename collisions. - Skill-support files relocated with their skill: powerbi scripts/fixtures/ tests bundled inside skills/powerbi-to-sl/, get-started evals inside the skill, and the semantic-layer consistency tests at the new plugin root (plugins/keboola/tests) so their PLUGIN_ROOT path logic keeps resolving. - marketplace.json collapsed to one `keboola` entry; marketplace version bumped to 2.0.0 (breaking restructure). - Root README, CLAUDE.md, and the new plugin README rewritten for the single-plugin layout with per-area grouping. - Deleted the 6 old plugin directories. Behavioral note: installing the single plugin now wires up the Keboola MCP server for every area; three of the former plugins shipped no MCP server.
jordanrburger
marked this pull request as ready for review
July 16, 2026 13:06
Resolve conflicts from the PR #89 skill-evals work landing on main while this branch consolidated the 6 plugins into a single `keboola` plugin. Conflict resolutions: - .claude-plugin/marketplace.json: kept the consolidated single-plugin manifest (v2.0.0). Main's patch version bumps applied to the 6 now-deleted plugins and no longer have a target. - plugins/{component-developer,dataapp-developer,keboola-cli,keboola-git}/ .claude-plugin/plugin.json: kept the deletions; main's changes were version-only bumps to plugins removed by the consolidation. Ported main's essential drift fixes into the consolidated plugin (these are required by main's new Tier 0 lint and all resolve correctly under plugins/keboola/): - SKILL name fixes: duckdb-transformation, keboola-config - agent frontmatter whenToUse -> description (11 agents) - semantic-layer-usage cross-skill reference path (still a sibling skill) - generate-vcr-tests argument-hint YAML quoting, keboola-git description Adopted main's documented eval layout for the single plugin: relocated all 18 trigger-evals.json to plugins/keboola/evals/<skill>/ (including moving get-started out of its skill dir), matching the harness glob plugins/*/evals/*/. Updated the harness's install.sh self-locate exemption from the old component-developer plugin name to keboola. Tier 0 lint: 311 passed. Activation discovery finds all 18 skills. claude plugin validate: passed.
Resolve conflict from PR #94 (sl-toolkit: PATCH edits + snake_case sql_dialect). PR #94 modified 7 files under plugins/sl-toolkit/ which #88 consolidated into plugins/keboola/. Ported all content changes to the new locations: - commands/sl-build.md, skills/semantic-layer/SKILL.md, tests/{fixtures,schemas}/semantic-model.json, tests/test_skill_consistency.py, tests/test_smoke.py plugins/sl-toolkit/README.md: kept #88's deletion (per-plugin READMEs were consolidated); its one-line PATCH note is preserved in the ported SKILL.md.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Jordan Burger · Slack thread
Before / After
Before: the marketplace shipped 6 separate plugins —
component-developer,dataapp-developer,keboola-cli,keboola-git,powerbi-to-sl,sl-toolkit— that users had to discover and/plugin installone at a time.After: a single
keboolaplugin. One install enables everything, with all 18 skills, 12 commands, and 14 agents grouped by area (components, data apps, CLI, git, Power BI, semantic layer). The grouping is documented in the READMEs; nothing was renamed.How
skills/<skill-name>/SKILL.md, exactly matching the repo's existing, verifiably-working convention (name:frontmatter == directory name). Recursiveskills/<area>/<skill>/discovery could not be confirmed safe from the tooling here, and there was no need to risk it: all 18 skill directory names are already unique, so the flat merge required zero renames — every invocation name is preserved. Areas are conveyed through the READMEs, not directory nesting.plugin.jsondeclares both servers:keboolastandardized on the modernhttptransport (dataapp-developerhad declaredsse,keboola-clihttp— samehttps://mcp.us-east4.gcp.keboola.com/mcpendpoint), plusplaywrightcarried over verbatim fromdataapp-developer(npx -y @executeautomation/playwright-mcp-server@latest). Keywords were merged across the six manifests.powerbi-to-sl'sscripts/+fixtures/+tests/are bundled insideskills/powerbi-to-sl/(preserving its test'sparent.parentlayout and thescripts/migrate.pyreference);get-started's eval set moved under the skill; and thesemantic-layerconsistency tests landed at the new plugin root (plugins/keboola/tests/) because they resolvePLUGIN_ROOT/skills/...andPLUGIN_ROOT/commands/...— verified to still resolve against the consolidated layout.marketplace.jsoncollapsed to onekeboolaentry and its own version bumped 1.12.0 → 2.0.0 (breaking restructure); the rootREADME.mdandCLAUDE.mdwere rewritten for the single-plugin, group-by-area model; a new mergedplugins/keboola/README.mddocuments every skill by area. The 6 old plugin directories were deleted.version: 1.0.0(the six former versions no longer apply to a single artifact).Behavioral change to flag
Installing this one plugin now wires up the Keboola MCP server for every area. Under the old layout, three of the six plugins (
component-developer,keboola-git,powerbi-to-sl) shipped no MCP server — users of those areas previously got no MCP declaration. CLI/token-driven areas still don't require MCP, but it will now be declared for them.Validation
claude plugin validate .passes on the marketplace manifest. Validating the plugin directory surfaces two pre-existing YAML-frontmatter errors in files this PR only relocated (byte-identical tomain) —commands/generate-vcr-tests.md(argument-hint:value is a bare[...] [...]that isn't valid YAML flow) andskills/keboola-git/SKILL.md(description:contains aTriggers:colon-space that YAML reads as a map key). Left as-is to keep this PR a clean structural move; both are worth a small follow-up.Generated by Claude Code