[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-elastic-ref-resolution":3,"mdc-mr2eo4-key":29,"related-repo-elastic-ref-resolution":506,"related-org-elastic-ref-resolution":544},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":19,"repoUrl":20,"updatedAt":21,"license":22,"forks":19,"topics":23,"repo":24,"sourceUrl":27,"mdContent":28},"ref-resolution","resolve ambiguous repository references","Use any time a branch, tag, or version in the user's question is ambiguous or unspecified - whether at the start of a question or mid-conversation (e.g. when comparing behavior across versions).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"elastic","Elastic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Felastic.png",[12,16],{"name":13,"slug":14,"type":15},"Git","git","tag",{"name":17,"slug":18,"type":15},"Code Analysis","code-analysis",2,"https:\u002F\u002Fgithub.com\u002Felastic\u002Fsourcerer","2026-08-07T05:03:35.874346",null,[],{"repoUrl":20,"stars":19,"forks":19,"topics":25,"description":26},[],"Sourcerer answers questions about your software from the source.","https:\u002F\u002Fgithub.com\u002Felastic\u002Fsourcerer\u002Ftree\u002FHEAD\u002Fsrc\u002Fsourcerer\u002Fskills\u002Fref-resolution","---\nname: \"ref-resolution\"\ndescription: \"Use any time a branch, tag, or version in the user's question is ambiguous or unspecified - whether at the start of a question or mid-conversation (e.g. when comparing behavior across versions).\"\n---\n\n## When this applies\nApply whenever a ref is ambiguous or unspecified. This includes:\n- No ref mentioned (resolve to a sensible default)\n- A version range or partial version (e.g. \"8.x\", \"latest 8\")\n- A relative reference (\"before 8.17\", \"since 8.14\")\n- A comparison across versions (\"how did this change between 8.x and 9.x?\")\n- A mid-conversation follow-up that introduces a new ref\n\n## Tool\nUse `sourcerer.refs.list` to explore available refs. It accepts wildcards on `git_ref`:\n- `git_ref: v8.*` - all refs starting with \"v8.\"\n- `git_ref: v8.17.*` - all 8.17.x tags\n- `git_ref: main` - exact branch match\n\nCombine with `git_ref_type: tag`, `git_ref_type: branch`, or `git_ref_type: commit` (a pinned,\nad-hoc commit not on a tracked branch\u002Ftag tip) to narrow further.\n\n## Resolution scenarios\n\n### No ref specified - default to latest stable\n1. Call `refs.list` with `git_ref_type: tag` for the repo.\n2. Exclude pre-release tags (suffixes like `-rc`, `-beta`, `-alpha`, `-SNAPSHOT`, `-M1`). A pre-release sorts *below* its final release (`v9.0.0 > v9.0.0-rc1`).\n3. Pick the highest semver tag, comparing numerically (major → minor → patch). Do not sort lexically, and do not assume `indexed_at DESC` order equals semver order (`v9.0.0 > v8.14.3 > v8.2.0`).\n4. Prefer the highest tag whose `status` is `ready` (the `status` field surfaced by `repo-discovery`). If the very latest tag is still indexing (status not `ready`), drop to the next-highest ready tag, or proceed but tell the user that release is only partially indexed.\n5. If no stable tags exist, fall back to the default branch (`main`, `master`, `trunk`). If only pre-release tags exist, resolve to the highest pre-release and say so explicitly.\n6. State the resolved tag or branch at the start of your answer.\n\n### Version range or partial version (e.g. \"8.x\", \"latest 8\")\nDisambiguate based on context:\n- **Single point in time** (the default): resolve to the *latest stable* within the range. Call `refs.list` with `git_ref: v8.*` and `git_ref_type: tag`, then pick the highest stable patch.\n- **Comparison or history** (e.g. \"how has X evolved across 8.x?\"): resolve to *all matching commits*. Collect every stable tag in the range; query each one separately. Label findings clearly by version.\n\n### Comparison across versions (e.g. \"8.x vs 9.x\", \"before and after 8.17\")\nResolve each ref independently using the steps above. Run content queries against each commit, then compare results. Label each finding with its version.\n\n### Explicit ref (branch name, exact tag, commit hash)\nUse as given. If it is a branch, call `refs.list` with `git_ref_type: branch` to confirm it exists and retrieve its current commit. If it is a tag, confirm and get its commit. If it is a commit hash, use it directly - optionally confirm with `git_ref_type: commit` if it may be a pinned commit rather than one reached via a branch\u002Ftag.\n\n## Pinning the commit\nOnce a ref resolves to a `git.commit`, use that commit in every subsequent `sourcerer.code.*` and `sourcerer.files.*` call for that repo and ref. Re-invoke this skill only when the question introduces a new or additional ref.\n",{"data":30,"body":31},{"name":4,"description":6},{"type":32,"children":33},"root",[34,43,49,79,85,107,143,172,178,185,361,367,372,430,436,441,447,472,478],{"type":35,"tag":36,"props":37,"children":39},"element","h2",{"id":38},"when-this-applies",[40],{"type":41,"value":42},"text","When this applies",{"type":35,"tag":44,"props":45,"children":46},"p",{},[47],{"type":41,"value":48},"Apply whenever a ref is ambiguous or unspecified. This includes:",{"type":35,"tag":50,"props":51,"children":52},"ul",{},[53,59,64,69,74],{"type":35,"tag":54,"props":55,"children":56},"li",{},[57],{"type":41,"value":58},"No ref mentioned (resolve to a sensible default)",{"type":35,"tag":54,"props":60,"children":61},{},[62],{"type":41,"value":63},"A version range or partial version (e.g. \"8.x\", \"latest 8\")",{"type":35,"tag":54,"props":65,"children":66},{},[67],{"type":41,"value":68},"A relative reference (\"before 8.17\", \"since 8.14\")",{"type":35,"tag":54,"props":70,"children":71},{},[72],{"type":41,"value":73},"A comparison across versions (\"how did this change between 8.x and 9.x?\")",{"type":35,"tag":54,"props":75,"children":76},{},[77],{"type":41,"value":78},"A mid-conversation follow-up that introduces a new ref",{"type":35,"tag":36,"props":80,"children":82},{"id":81},"tool",[83],{"type":41,"value":84},"Tool",{"type":35,"tag":44,"props":86,"children":87},{},[88,90,97,99,105],{"type":41,"value":89},"Use ",{"type":35,"tag":91,"props":92,"children":94},"code",{"className":93},[],[95],{"type":41,"value":96},"sourcerer.refs.list",{"type":41,"value":98}," to explore available refs. It accepts wildcards on ",{"type":35,"tag":91,"props":100,"children":102},{"className":101},[],[103],{"type":41,"value":104},"git_ref",{"type":41,"value":106},":",{"type":35,"tag":50,"props":108,"children":109},{},[110,121,132],{"type":35,"tag":54,"props":111,"children":112},{},[113,119],{"type":35,"tag":91,"props":114,"children":116},{"className":115},[],[117],{"type":41,"value":118},"git_ref: v8.*",{"type":41,"value":120}," - all refs starting with \"v8.\"",{"type":35,"tag":54,"props":122,"children":123},{},[124,130],{"type":35,"tag":91,"props":125,"children":127},{"className":126},[],[128],{"type":41,"value":129},"git_ref: v8.17.*",{"type":41,"value":131}," - all 8.17.x tags",{"type":35,"tag":54,"props":133,"children":134},{},[135,141],{"type":35,"tag":91,"props":136,"children":138},{"className":137},[],[139],{"type":41,"value":140},"git_ref: main",{"type":41,"value":142}," - exact branch match",{"type":35,"tag":44,"props":144,"children":145},{},[146,148,154,156,162,164,170],{"type":41,"value":147},"Combine with ",{"type":35,"tag":91,"props":149,"children":151},{"className":150},[],[152],{"type":41,"value":153},"git_ref_type: tag",{"type":41,"value":155},", ",{"type":35,"tag":91,"props":157,"children":159},{"className":158},[],[160],{"type":41,"value":161},"git_ref_type: branch",{"type":41,"value":163},", or ",{"type":35,"tag":91,"props":165,"children":167},{"className":166},[],[168],{"type":41,"value":169},"git_ref_type: commit",{"type":41,"value":171}," (a pinned,\nad-hoc commit not on a tracked branch\u002Ftag tip) to narrow further.",{"type":35,"tag":36,"props":173,"children":175},{"id":174},"resolution-scenarios",[176],{"type":41,"value":177},"Resolution scenarios",{"type":35,"tag":179,"props":180,"children":182},"h3",{"id":181},"no-ref-specified-default-to-latest-stable",[183],{"type":41,"value":184},"No ref specified - default to latest stable",{"type":35,"tag":186,"props":187,"children":188},"ol",{},[189,209,266,286,329,356],{"type":35,"tag":54,"props":190,"children":191},{},[192,194,200,202,207],{"type":41,"value":193},"Call ",{"type":35,"tag":91,"props":195,"children":197},{"className":196},[],[198],{"type":41,"value":199},"refs.list",{"type":41,"value":201}," with ",{"type":35,"tag":91,"props":203,"children":205},{"className":204},[],[206],{"type":41,"value":153},{"type":41,"value":208}," for the repo.",{"type":35,"tag":54,"props":210,"children":211},{},[212,214,220,221,227,228,234,235,241,242,248,250,256,258,264],{"type":41,"value":213},"Exclude pre-release tags (suffixes like ",{"type":35,"tag":91,"props":215,"children":217},{"className":216},[],[218],{"type":41,"value":219},"-rc",{"type":41,"value":155},{"type":35,"tag":91,"props":222,"children":224},{"className":223},[],[225],{"type":41,"value":226},"-beta",{"type":41,"value":155},{"type":35,"tag":91,"props":229,"children":231},{"className":230},[],[232],{"type":41,"value":233},"-alpha",{"type":41,"value":155},{"type":35,"tag":91,"props":236,"children":238},{"className":237},[],[239],{"type":41,"value":240},"-SNAPSHOT",{"type":41,"value":155},{"type":35,"tag":91,"props":243,"children":245},{"className":244},[],[246],{"type":41,"value":247},"-M1",{"type":41,"value":249},"). A pre-release sorts ",{"type":35,"tag":251,"props":252,"children":253},"em",{},[254],{"type":41,"value":255},"below",{"type":41,"value":257}," its final release (",{"type":35,"tag":91,"props":259,"children":261},{"className":260},[],[262],{"type":41,"value":263},"v9.0.0 > v9.0.0-rc1",{"type":41,"value":265},").",{"type":35,"tag":54,"props":267,"children":268},{},[269,271,277,279,285],{"type":41,"value":270},"Pick the highest semver tag, comparing numerically (major → minor → patch). Do not sort lexically, and do not assume ",{"type":35,"tag":91,"props":272,"children":274},{"className":273},[],[275],{"type":41,"value":276},"indexed_at DESC",{"type":41,"value":278}," order equals semver order (",{"type":35,"tag":91,"props":280,"children":282},{"className":281},[],[283],{"type":41,"value":284},"v9.0.0 > v8.14.3 > v8.2.0",{"type":41,"value":265},{"type":35,"tag":54,"props":287,"children":288},{},[289,291,297,299,305,307,312,314,320,322,327],{"type":41,"value":290},"Prefer the highest tag whose ",{"type":35,"tag":91,"props":292,"children":294},{"className":293},[],[295],{"type":41,"value":296},"status",{"type":41,"value":298}," is ",{"type":35,"tag":91,"props":300,"children":302},{"className":301},[],[303],{"type":41,"value":304},"ready",{"type":41,"value":306}," (the ",{"type":35,"tag":91,"props":308,"children":310},{"className":309},[],[311],{"type":41,"value":296},{"type":41,"value":313}," field surfaced by ",{"type":35,"tag":91,"props":315,"children":317},{"className":316},[],[318],{"type":41,"value":319},"repo-discovery",{"type":41,"value":321},"). If the very latest tag is still indexing (status not ",{"type":35,"tag":91,"props":323,"children":325},{"className":324},[],[326],{"type":41,"value":304},{"type":41,"value":328},"), drop to the next-highest ready tag, or proceed but tell the user that release is only partially indexed.",{"type":35,"tag":54,"props":330,"children":331},{},[332,334,340,341,347,348,354],{"type":41,"value":333},"If no stable tags exist, fall back to the default branch (",{"type":35,"tag":91,"props":335,"children":337},{"className":336},[],[338],{"type":41,"value":339},"main",{"type":41,"value":155},{"type":35,"tag":91,"props":342,"children":344},{"className":343},[],[345],{"type":41,"value":346},"master",{"type":41,"value":155},{"type":35,"tag":91,"props":349,"children":351},{"className":350},[],[352],{"type":41,"value":353},"trunk",{"type":41,"value":355},"). If only pre-release tags exist, resolve to the highest pre-release and say so explicitly.",{"type":35,"tag":54,"props":357,"children":358},{},[359],{"type":41,"value":360},"State the resolved tag or branch at the start of your answer.",{"type":35,"tag":179,"props":362,"children":364},{"id":363},"version-range-or-partial-version-eg-8x-latest-8",[365],{"type":41,"value":366},"Version range or partial version (e.g. \"8.x\", \"latest 8\")",{"type":35,"tag":44,"props":368,"children":369},{},[370],{"type":41,"value":371},"Disambiguate based on context:",{"type":35,"tag":50,"props":373,"children":374},{},[375,413],{"type":35,"tag":54,"props":376,"children":377},{},[378,384,386,391,393,398,399,404,406,411],{"type":35,"tag":379,"props":380,"children":381},"strong",{},[382],{"type":41,"value":383},"Single point in time",{"type":41,"value":385}," (the default): resolve to the ",{"type":35,"tag":251,"props":387,"children":388},{},[389],{"type":41,"value":390},"latest stable",{"type":41,"value":392}," within the range. Call ",{"type":35,"tag":91,"props":394,"children":396},{"className":395},[],[397],{"type":41,"value":199},{"type":41,"value":201},{"type":35,"tag":91,"props":400,"children":402},{"className":401},[],[403],{"type":41,"value":118},{"type":41,"value":405}," and ",{"type":35,"tag":91,"props":407,"children":409},{"className":408},[],[410],{"type":41,"value":153},{"type":41,"value":412},", then pick the highest stable patch.",{"type":35,"tag":54,"props":414,"children":415},{},[416,421,423,428],{"type":35,"tag":379,"props":417,"children":418},{},[419],{"type":41,"value":420},"Comparison or history",{"type":41,"value":422}," (e.g. \"how has X evolved across 8.x?\"): resolve to ",{"type":35,"tag":251,"props":424,"children":425},{},[426],{"type":41,"value":427},"all matching commits",{"type":41,"value":429},". Collect every stable tag in the range; query each one separately. Label findings clearly by version.",{"type":35,"tag":179,"props":431,"children":433},{"id":432},"comparison-across-versions-eg-8x-vs-9x-before-and-after-817",[434],{"type":41,"value":435},"Comparison across versions (e.g. \"8.x vs 9.x\", \"before and after 8.17\")",{"type":35,"tag":44,"props":437,"children":438},{},[439],{"type":41,"value":440},"Resolve each ref independently using the steps above. Run content queries against each commit, then compare results. Label each finding with its version.",{"type":35,"tag":179,"props":442,"children":444},{"id":443},"explicit-ref-branch-name-exact-tag-commit-hash",[445],{"type":41,"value":446},"Explicit ref (branch name, exact tag, commit hash)",{"type":35,"tag":44,"props":448,"children":449},{},[450,452,457,458,463,465,470],{"type":41,"value":451},"Use as given. If it is a branch, call ",{"type":35,"tag":91,"props":453,"children":455},{"className":454},[],[456],{"type":41,"value":199},{"type":41,"value":201},{"type":35,"tag":91,"props":459,"children":461},{"className":460},[],[462],{"type":41,"value":161},{"type":41,"value":464}," to confirm it exists and retrieve its current commit. If it is a tag, confirm and get its commit. If it is a commit hash, use it directly - optionally confirm with ",{"type":35,"tag":91,"props":466,"children":468},{"className":467},[],[469],{"type":41,"value":169},{"type":41,"value":471}," if it may be a pinned commit rather than one reached via a branch\u002Ftag.",{"type":35,"tag":36,"props":473,"children":475},{"id":474},"pinning-the-commit",[476],{"type":41,"value":477},"Pinning the commit",{"type":35,"tag":44,"props":479,"children":480},{},[481,483,489,491,497,498,504],{"type":41,"value":482},"Once a ref resolves to a ",{"type":35,"tag":91,"props":484,"children":486},{"className":485},[],[487],{"type":41,"value":488},"git.commit",{"type":41,"value":490},", use that commit in every subsequent ",{"type":35,"tag":91,"props":492,"children":494},{"className":493},[],[495],{"type":41,"value":496},"sourcerer.code.*",{"type":41,"value":405},{"type":35,"tag":91,"props":499,"children":501},{"className":500},[],[502],{"type":41,"value":503},"sourcerer.files.*",{"type":41,"value":505}," call for that repo and ref. Re-invoke this skill only when the question introduces a new or additional ref.",{"items":507,"total":543},[508,519,530,535],{"slug":509,"name":509,"fn":510,"description":511,"org":512,"tags":513,"stars":19,"repoUrl":20,"updatedAt":518},"code-citations","cite code symbols and repository claims","Use whenever an answer names a code symbol, class, function, config key, endpoint, file, directory, or file extension - or makes any checkable claim about repository behavior (a default value, a version, a recall\u002Flatency figure, a behavioral guarantee). This is nearly every substantive answer this agent produces, so treat it as the default path, not an edge case reserved for explicit \"cite your sources\" requests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[514,515],{"name":17,"slug":18,"type":15},{"name":516,"slug":517,"type":15},"Documentation","documentation","2026-08-07T05:03:32.676248",{"slug":520,"name":520,"fn":521,"description":522,"org":523,"tags":524,"stars":19,"repoUrl":20,"updatedAt":529},"code-search","search and explore repository code","Use when you need to find where something is defined, understand how a feature is implemented, or explore an unfamiliar repo. Guides which tools to use and in what order.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[525,526],{"name":17,"slug":18,"type":15},{"name":527,"slug":528,"type":15},"Search","search","2026-08-07T05:03:33.027185",{"slug":4,"name":4,"fn":5,"description":6,"org":531,"tags":532,"stars":19,"repoUrl":20,"updatedAt":21},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[533,534],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":319,"name":319,"fn":536,"description":537,"org":538,"tags":539,"stars":19,"repoUrl":20,"updatedAt":542},"discover indexed repositories","Use at the start of most questions to identify which repos are indexed before querying content. Also use mid-conversation when an answer may require expanding into a related or upstream repo (e.g. tracing from an application repo into a lower-level dependency).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[540,541],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-08-07T05:03:32.314134",4,{"items":545,"total":717},[546,565,582,597,616,628,638,653,665,680,691,704],{"slug":547,"name":547,"fn":548,"description":549,"org":550,"tags":551,"stars":562,"repoUrl":563,"updatedAt":564},"accessing-benchmark-results","retrieve and analyze Rally benchmark results","Retrieve Rally benchmark results from an external Elasticsearch metrics store. Use to list past races, get a single race's overall (per-task) results, chart a metric's trend across multiple runs, compare two races, or check whether a run converged — e.g. \"show me recent geonames races\", \"what's the service_time trend for nyc_taxis over the last 30 days?\", \"compare these two race-ids\". Applies when datastore.type = elasticsearch is set in ~\u002F.rally\u002Frally.ini.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[552,555,558,559],{"name":553,"slug":554,"type":15},"Analytics","analytics",{"name":556,"slug":557,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":560,"slug":561,"type":15},"Performance","performance",2027,"https:\u002F\u002Fgithub.com\u002Felastic\u002Frally","2026-07-12T07:46:38.54144",{"slug":566,"name":566,"fn":567,"description":568,"org":569,"tags":570,"stars":562,"repoUrl":563,"updatedAt":581},"developing-rally","develop and debug Rally source code","Work on Rally's own codebase, not running benchmarks with it. Use when setting up the dev environment, running Rally's tests or linters, navigating its source, debugging Rally's own code, or making changes to Rally itself.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[571,574,575,578],{"name":572,"slug":573,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":576,"slug":577,"type":15},"Engineering","engineering",{"name":579,"slug":580,"type":15},"Local Development","local-development","2026-07-12T07:46:35.976807",{"slug":583,"name":583,"fn":584,"description":585,"org":586,"tags":587,"stars":562,"repoUrl":563,"updatedAt":596},"running-benchmarks","run Rally benchmarks against Elasticsearch","Run Rally benchmarks (races) against Elasticsearch — an existing\u002Fexternal cluster or a Rally-provisioned distribution — and read the summary report. Use when running a race (any pipeline, track, challenge, target-hosts, or auth) or when interpreting throughput, latency, and service_time results.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[588,589,592,593],{"name":9,"slug":8,"type":15},{"name":590,"slug":591,"type":15},"Elasticsearch","elasticsearch",{"name":560,"slug":561,"type":15},{"name":594,"slug":595,"type":15},"Testing","testing","2026-07-12T07:46:37.277964",{"slug":598,"name":598,"fn":599,"description":600,"org":601,"tags":602,"stars":613,"repoUrl":614,"updatedAt":615},"cloud-access-management","manage Elastic Cloud organization access","Manage Elastic Cloud organization access: invite users, assign roles to Serverless projects, and create or revoke Cloud API keys. Use when granting, modifying, or auditing user access.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[603,606,607,610],{"name":604,"slug":605,"type":15},"Cloud","cloud",{"name":9,"slug":8,"type":15},{"name":608,"slug":609,"type":15},"Operations","operations",{"name":611,"slug":612,"type":15},"Permissions","permissions",531,"https:\u002F\u002Fgithub.com\u002Felastic\u002Fagent-skills","2026-07-12T07:46:44.946285",{"slug":617,"name":617,"fn":618,"description":619,"org":620,"tags":621,"stars":613,"repoUrl":614,"updatedAt":627},"cloud-create-project","create Elastic Cloud Serverless projects","Creates Elastic Cloud Serverless projects (Elasticsearch, Observability, or Security) via the REST API, saves credentials to file, and bootstraps a scoped Elasticsearch API key. Use when creating a new serverless project, provisioning a search or observability environment, or spinning up a new Elastic Cloud project.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[622,623,626],{"name":604,"slug":605,"type":15},{"name":624,"slug":625,"type":15},"Deployment","deployment",{"name":590,"slug":591,"type":15},"2026-07-12T07:46:42.353362",{"slug":629,"name":629,"fn":630,"description":631,"org":632,"tags":633,"stars":613,"repoUrl":614,"updatedAt":637},"cloud-manage-project","manage Elastic Cloud Serverless projects","Manages existing Elastic Cloud Serverless projects: list, get, update, delete, reset credentials, resume, and load saved credentials. Connects to existing projects by resolving endpoints and acquiring scoped Elasticsearch API keys. Use when performing day-2 operations on serverless projects, connecting to an existing project, loading or resetting project credentials, or looking up project details.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[634,635,636],{"name":604,"slug":605,"type":15},{"name":590,"slug":591,"type":15},{"name":608,"slug":609,"type":15},"2026-07-12T07:46:41.097412",{"slug":639,"name":639,"fn":640,"description":641,"org":642,"tags":643,"stars":613,"repoUrl":614,"updatedAt":652},"cloud-network-security","manage Elastic Cloud network security","Manage Serverless network security (traffic filters): create, update, and delete IP filters and AWS PrivateLink VPC filters. Use when restricting network access or configuring private connectivity.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[644,645,646,649],{"name":604,"slug":605,"type":15},{"name":590,"slug":591,"type":15},{"name":647,"slug":648,"type":15},"Networking","networking",{"name":650,"slug":651,"type":15},"Security","security","2026-07-12T07:46:43.675992",{"slug":654,"name":654,"fn":655,"description":656,"org":657,"tags":658,"stars":613,"repoUrl":614,"updatedAt":664},"cloud-setup","configure Elastic Cloud authentication","Configures Elastic Cloud authentication and environment defaults. Use when setting up EC_API_KEY, configuring Cloud API access, or when another cloud skill requires credentials.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[659,662,663],{"name":660,"slug":661,"type":15},"Authentication","authentication",{"name":604,"slug":605,"type":15},{"name":590,"slug":591,"type":15},"2026-07-12T07:46:39.783105",{"slug":666,"name":666,"fn":667,"description":668,"org":669,"tags":670,"stars":613,"repoUrl":614,"updatedAt":679},"elasticsearch-audit","configure Elasticsearch security audit logs","Enable, configure, and query Elasticsearch security audit logs. Use when the task involves audit logging setup, event filtering, or investigating security incidents like failed logins.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[671,674,675,678],{"name":672,"slug":673,"type":15},"Audit","audit",{"name":590,"slug":591,"type":15},{"name":676,"slug":677,"type":15},"Logs","logs",{"name":650,"slug":651,"type":15},"2026-07-12T07:47:35.092599",{"slug":681,"name":681,"fn":682,"description":683,"org":684,"tags":685,"stars":613,"repoUrl":614,"updatedAt":690},"elasticsearch-authn","configure Elasticsearch authentication realms","Authenticate to Elasticsearch using native, file-based, LDAP\u002FAD, SAML, OIDC, Kerberos, JWT, or certificate realms. Use when connecting with credentials, choosing a realm, or managing API keys. Assumes the target realms are already configured.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[686,687,688,689],{"name":660,"slug":661,"type":15},{"name":9,"slug":8,"type":15},{"name":590,"slug":591,"type":15},{"name":650,"slug":651,"type":15},"2026-07-12T07:47:41.474547",{"slug":692,"name":692,"fn":693,"description":694,"org":695,"tags":696,"stars":613,"repoUrl":614,"updatedAt":703},"elasticsearch-authz","manage Elasticsearch RBAC and security roles","Manage Elasticsearch RBAC: native users, roles, role mappings, document- and field-level security. Use when creating users or roles, assigning privileges, or mapping external realms like LDAP\u002FSAML.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[697,698,699,702],{"name":9,"slug":8,"type":15},{"name":590,"slug":591,"type":15},{"name":700,"slug":701,"type":15},"RBAC","rbac",{"name":650,"slug":651,"type":15},"2026-07-12T07:47:36.394177",{"slug":705,"name":705,"fn":706,"description":707,"org":708,"tags":709,"stars":613,"repoUrl":614,"updatedAt":716},"elasticsearch-esql","query Elasticsearch data with ES|QL","Execute ES|QL (Elasticsearch Query Language) queries, use when the user wants to query Elasticsearch data, analyze logs, aggregate metrics, explore data, or create charts and dashboards from ES|QL results.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[710,711,712,713],{"name":553,"slug":554,"type":15},{"name":556,"slug":557,"type":15},{"name":590,"slug":591,"type":15},{"name":714,"slug":715,"type":15},"SQL","sql","2026-07-12T07:47:40.249533",90]