These skills are gated to Elastic/Kibana contexts and layer domain policy over generic workflows.
The boundary is intentional: generic skills (k-review, k-deep-review, k-github, k-compose-*) keep portable mechanics and gates; this page's skills own Elastic/Kibana labels, ownership, Buildkite routing, bot allowlists, PR templates, release-note rules, commit attribution, and Kibana live-UI target/data setup.
k-elastic-domain
Elastic PR Test Plans contain only applicable manual setup, reproduction, and observation steps. Omit the section when no manual scenario applies, including automated-test-only changes. Automated test commands, results, and CI checklists stay in the internal publication packet, outside the PR body. Commands used for manual setup or direct UI/API/CLI reproduction remain valid.
| Field | Value |
|---|
| Use when | Elastic/Kibana overlay for PRs, labels, ownership, bots, Buildkite, live UI |
| Source | exact_k-elastic-domain |
| Boundary | propose-only unless the active primary skill permits side effects |
The overlay also carries a Kibana planning fork checklist (references/kibana-planning-forks.md) that the generic k-spec skill consults when the target repo is elastic/kibana: API versioning, Saved Objects/migrations, privileges, dependencies, feature flags, backports, test placement, alerting, and instrumentation forks. Adapted from the specialist elicitation_questions in elastic/plan (prompts/teams/elastic-kibana/); refresh it by re-reading that directory upstream and folding in changes — curated, not mirrored.
The overlay also owns SCSI index scope: scsi-main serves Elastic-curated indices (Elastic-org repositories plus a few upstream dependencies) and scsi-local the user's own. Outside that set the generic k-semantic-code-search fallback (rg) applies, and the overlay forbids assuming Elastic coverage for a non-Elastic repository.
k-elastic-slides
| Field | Value |
|---|
| Use when | manually generating, updating, or styling Elastic-themed Google Slides decks |
| Source | exact_k-elastic-slides |
| Routing | manual |
| Related | layers Elastic palette, ownership, and Kibana manifest sourcing over k-google-workspace Slides mechanics |
k-buildkite
| Field | Value |
|---|
| Use when | Buildkite status, logs, pipelines, debug, or any buildkite.com URL |
| Source | exact_k-buildkite |
| Gate | elastic org repos |
k-kibana-labels-propose
Backport assessment reuses the shared issue intake and checks candidate branches from versions.json for the affected behavior, fix applicability, and required dependencies. An open branch or issue label alone does not justify targeting it. Report supported targets, exclusions, and material evidence gaps; standalone label classification remains bounded and propose-only.
k-kibana-management-ownership
k-kibana-console-monaco
k-kbn-stack
| Field | Value |
|---|
| Use when | starting, reusing, inspecting, or tearing down local Kibana ES+Kibana dev stacks |
| Source | exact_k-kbn-stack |
| Tool | ,kbn-stack |
| Gate | elastic/kibana repos |
,kbn-stack selects pnpm when the worktree contains pnpm-lock.yaml, otherwise Yarn Classic. Bootstrap uses pnpm kbn bootstrap or yarn kbn bootstrap accordingly. Yarn Classic is mise-managed for branches that require it; a worktree's .mise.toml supplies its project-specific pnpm version.
Detached ,kbn-stack --detach starts record the Kibana process log as kbn_log in the registry. Kibana live-UI checks use that log for optimizer-bundle readiness; the ES log field is not optimizer evidence. Before reusing a ready registry entry, correlate it with recorded pids, slot-derived port listeners, and log paths. That check validates a registry entry; it does not license guessing arbitrary localhost targets. Default starts load plugin group platform and snapshot ES heap 1g; pass --groups all when the UI is outside platform, and --es-heap 1536m to restore the kbn-es snapshot heap. Override-free snapshot starts share one background ES per package.json version (registry reserved key __es__, refcounted by --stop); -E, --data, a non-default --es-heap, or --isolated-es keeps an isolated per-worktree ES. The skill's mandatory references/runtime-lifecycle.md Isolation Judgment section owns the agent-side call the CLI cannot make: it names the task signals (empty-state assertions, cluster-wide mutations, alerting/task-manager runs, perf timing, SO-migration or boot-time-ES diffs) that require passing --isolated-es despite an override-free start.
k-kbn-backport
| Field | Value |
|---|
| Use when | running an end-to-end Kibana backport workflow |
| Source | exact_k-kbn-backport |
| Routing | manual |
| Boundary | launch payload plus user request is the bounded approval packet for every created backport PR |
k-kbn-standup
| Field | Value |
|---|
| Use when | preparing the Admin UX daily update |
| Scope | Elastic repos plus all Slack channels including private/DMs; baseline in #admin-ux-internal; gather also #kibana-management |
| Format | compact Markdown links via pbcopy after confirm; section headings PRs / Issues / Slack and other (omit empty; blank line after heading and between sections); one bullet per authored source PR except source+backports; reviews lumped; related issues may share a bullet; high-level wording; skim low-impact Slack; PR icons :merged: / :pr-open: only; issue icons 🐛 bugs / :ticket: other; direct :sdh: summary tag |
| Source | exact_k-kbn-standup |
| Routing | manual |