Skip to content

Add agent skill for testing EUI PRs in Kibana#9639

Draft
acstll wants to merge 2 commits intoelastic:mainfrom
acstll:add-test-eui-pr-in-kibana-skill
Draft

Add agent skill for testing EUI PRs in Kibana#9639
acstll wants to merge 2 commits intoelastic:mainfrom
acstll:add-test-eui-pr-in-kibana-skill

Conversation

@acstll
Copy link
Copy Markdown
Contributor

@acstll acstll commented May 6, 2026

Summary

Important

There's a better fully-automated alternative of a workflow for testing an eui commit/branch in Kibana, that should be available soon (code). This is a fallback.

Note

Also, this workflow of manually packing tarballs and manually modifying package.json files is not something we want to have in the future, but since it's still needed, i thought it was an easy and useful way to start adding skills to this repo! Needing to create this Kibana PR was the trigger…

Tip

We could also add a variant of this that triggers a gh workflow for making a snapshot release, and then open the PR in Kibana

Adds a test-eui-pr-in-kibana agent skill that codifies the "Testing local EUI in local Kibana" workflow documented in wiki/contributing-to-eui/testing/testing-in-kibana.md (link).

You can ask an agent something like "let's test this changes in Kibana" to trigger the skill. Which will then pack the tarballs and set it up in Kibana in a new branch, optionally pushing and creating a PR to run CI.

Layout mirrors how elastic/kibana organizes agent assets:

  • .agents/skills/ is the source of truth
  • .claude/skills and .codex/skills symlink to it

Also extends .gitignore to ignore user-specific Claude Code state (.claude/*.local.json, .claude/worktrees/) while keeping the skills folder committable.

API Changes

N/A

Screenshots

Screenshot 2026-05-06 at 15 11 53

Impact Assessment

Note: Most PRs should be tested in Kibana to help gauge their Impact before merging.

  • 🔴 Breaking changes — What will break? How many usages in Kibana/Cloud UI are impacted?
  • 💅 Visual changes — May impact style overrides; could require visual testing. Explain and estimate impact.
  • 🧪 Test impact — May break functional or snapshot tests (e.g., HTML structure, class names, default values).
  • 🔧 Hard to integrate — If changes require substantial updates to Kibana, please stage the changes and link them here.

Impact level: 🟢 None

Release Readiness

  • Documentation: {link to docs page(s)}
  • Figma: {link to Figma or issue}
  • Migration guide: {steps or link, for breaking/visual changes or deprecations}
  • Adoption plan (new features): {link to issue/doc or outline who will integrate this and where}

QA instructions for reviewer

(agent-generated, edited by me)

QA is a guided dry-run of invoking the skill.

Prereqs

  • Claude Code installed and authenticated (Cursor or Codex CLI also work
    via the .codex/skills symlink — pick whichever you use)
  • A local Kibana checkout with upstream remote pointing to
    git@github.com:elastic/kibana.git
  • An EUI PR to test against. Easiest: an open PR of yours, or any merged
    PR like #9630

Steps

  1. Check out this branch in your EUI repo (gh pr 9639).

  2. Verify the symlinks resolved — ls .claude/skills/ and ls .codex/skills/ should both show test-eui-pr-in-kibana/.

  3. Open Claude Code from the EUI repo root and prompt something like:

    Test EUI [EuiDataGrid] Fix cell popover hidden behind sibling/nested flyouts #9630 in Kibana

    (or whichever PR number you picked). The skill should auto-load.

  4. Let it run, expect background tasks…

What to verify

  • Skill auto-triggers on phrases like "test EUI #N in Kibana", "create Kibana test PR for EUI #N", or "stage EUI PR in Kibana"
  • EUI side:
    • Builds with the temp packages/eui/package.json edit and the edit is reverted at the end (git status clean afterwards)
    • If the PR touches eui-theme-common / eui-theme-borealis, the skill detects and offers to build them; otherwise it asks
  • Kibana side:
    • New branch named test-eui-{N}-{slug} created off fresh upstream/main
    • Tarball file is snake_case (eui_{version}_{N}.tgz)
    • package.json points @elastic/eui to file:./...tgz and adds @elastic/eui-theme-common (published version, unless built)
    • packages/kbn-dependency-ownership/src/rule.ts and src/dev/license_checker/config.ts each get an @elastic/eui-theme-common entry
    • Single commit, no push, no PR opened (skill stops at "branch ready" and asks)
  • Gotchas the skill should handle:
    • Uses Kibana's required Node version via nvm, not the active one
    • Stages files explicitly (no git add -A — your unrelated working
      tree edits should not be picked up)

Checklist before marking Ready for Review

Reviewer checklist

  • Approved Impact Assessment — Acceptable to merge given the consumer impact.
  • Approved Release Readiness — Docs, Figma, and migration info are sufficient to ship.

Adds a `test-eui-pr-in-kibana` agent skill that codifies the workflow
documented in `wiki/contributing-to-eui/testing/testing-in-kibana.md`:
build a local @elastic/eui tarball from a PR branch, stand up a Kibana
branch consuming it, and run `yarn kbn bootstrap` so Kibana CI can run
against the EUI PR before merging.

Layout mirrors how elastic/kibana organizes agent assets:
- `.agents/skills/` is the source of truth
- `.claude/skills` and `.codex/skills` symlink to it

Also extends `.gitignore` to ignore user-specific Claude Code state
(`.claude/*.local.json`, `.claude/worktrees/`) while keeping the skills
folder committable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@acstll acstll self-assigned this May 6, 2026
@acstll acstll added the skip-changelog Use on PRs to skip changelog requirement (Don't delete - used for automation) label May 6, 2026
Clarifies when to use published theme packages and documents theme tarball output naming plus workspace dependency caveats to avoid Kibana bootstrap failures.

Co-authored-by: Cursor <cursoragent@cursor.com>
@elasticmachine
Copy link
Copy Markdown
Collaborator

💚 Build Succeeded

History

cc @acstll

@elasticmachine
Copy link
Copy Markdown
Collaborator

elasticmachine commented May 6, 2026

💚 Build Succeeded

History

cc @acstll

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog Use on PRs to skip changelog requirement (Don't delete - used for automation)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants