Skip to content

Consolidate 6 plugins into a single keboola plugin - #88

Open
claude[bot] wants to merge 3 commits into
mainfrom
consolidate-single-keboola-plugin
Open

Consolidate 6 plugins into a single keboola plugin#88
claude[bot] wants to merge 3 commits into
mainfrom
consolidate-single-keboola-plugin

Conversation

@claude

@claude claude Bot commented Jul 15, 2026

Copy link
Copy Markdown

Requested by Jordan Burger · Slack thread

Before / After

Before: the marketplace shipped 6 separate pluginscomponent-developer, dataapp-developer, keboola-cli, keboola-git, powerbi-to-sl, sl-toolkit — that users had to discover and /plugin install one at a time.

After: a single keboola plugin. 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

  • Skill layout — FLAT (one-level). Skills stay at skills/<skill-name>/SKILL.md, exactly matching the repo's existing, verifiably-working convention (name: frontmatter == directory name). Recursive skills/<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.
  • MCP merge. The new plugin.json declares both servers: keboola standardized on the modern http transport (dataapp-developer had declared sse, keboola-cli http — same https://mcp.us-east4.gcp.keboola.com/mcp endpoint), plus playwright carried over verbatim from dataapp-developer (npx -y @executeautomation/playwright-mcp-server@latest). Keywords were merged across the six manifests.
  • Commands & agents. All 12 commands and all 14 agents merged with no filename collisions — nothing was dropped or renamed.
  • Skill-support files travel with their skill: powerbi-to-sl's scripts/ + fixtures/ + tests/ are bundled inside skills/powerbi-to-sl/ (preserving its test's parent.parent layout and the scripts/migrate.py reference); get-started's eval set moved under the skill; and the semantic-layer consistency tests landed at the new plugin root (plugins/keboola/tests/) because they resolve PLUGIN_ROOT/skills/... and PLUGIN_ROOT/commands/... — verified to still resolve against the consolidated layout.
  • Bookkeeping. marketplace.json collapsed to one keboola entry and its own version bumped 1.12.0 → 2.0.0 (breaking restructure); the root README.md and CLAUDE.md were rewritten for the single-plugin, group-by-area model; a new merged plugins/keboola/README.md documents every skill by area. The 6 old plugin directories were deleted.
  • Versioning. The consolidated plugin starts fresh at 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 to main) — commands/generate-vcr-tests.md (argument-hint: value is a bare [...] [...] that isn't valid YAML flow) and skills/keboola-git/SKILL.md (description: contains a Triggers: 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

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
jordanrburger requested a review from ottomansky July 15, 2026 22:54
@jordanrburger
jordanrburger marked this pull request as ready for review July 16, 2026 13:06
claude added 2 commits July 24, 2026 12:01
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant