agentsclimarketplace

Inventory discovery

Skill ymedlop/kuberoutectl-skills/skills/inventory-discovery

Agent plugin providing skills and MCP server configurations for Kuberoutectl scenarios.

Install
npx -y skills add ymedlop/kuberoutectl-skills --skill inventory-discovery

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 17 days oldThe repository was created 17 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Discover and refresh what Kubernetes access a user has, and set up a provider for the first time. Handles prompts like 'what clusters do I have', 'list my clusters', 'I only see one AWS account', 'this list looks stale', 'set me up with kuberoutectl'. USE FOR: prerequisites and doctor, AWS SSO multi-account profiles, syncing a provider, refreshing a stale inventory, checking discovery breadth via scopes, telling an empty cache from a permissions boundary. DO NOT USE FOR: choosing or switching to a cluster (use target-selection), or diagnosing why a known cluster is unreachable (use access-triage).

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

7.4 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it

<!-- Frontmatter is generic metadata for humans and index/marketplace scanning. It is NOT parsed at runtime by any specific AI client. -->

Inventory discovery

Use this when the user asks "what clusters / access do I have?", is starting fresh, says the list looks stale, or found fewer clusters than expected.

kuberoutectl asks each provider's own CLI (Azure, AWS, GCP) or reads local kubeconfig files, then records what it finds in a local JSON cache. Everything else — routing, triage — reads that cache.

Preconditions

  • kuberoutectl on PATH (install).
  • The provider's own CLI installed and logged in. doctor checks the first, not the second.
  • AWS across more than one account: profiles must exist in ~/.aws/config first — step 3. Without them sync aws finds one account and the user assumes clusters are missing.

Commands

# read-only
kuberoutectl doctor
kuberoutectl inventory providers
kuberoutectl inventory sources
kuberoutectl inventory scopes
kuberoutectl target list
kuberoutectl target label list <alias|id|name>

# refresh — idempotent; user labels, collections, visibility all survive
kuberoutectl sync azure
kuberoutectl sync aws
kuberoutectl sync gcp
kuberoutectl sync kubeconfig

# writes ~/.aws/config — additive, confirm first
kuberoutectl setup aws-sso --sso-session <name>
kuberoutectl setup aws-sso --sso-session <name> --role <role> --region <region>

# cache cleanup — destructive, confirm first
kuberoutectl target delete <alias|id|name>
kuberoutectl target clear

Steps

  1. Prerequisites. doctor. Anything not ok is an install problem — resolve it via the matching provider guide.
  2. Providers in scope. Ask, or infer from doctor. Only sync clouds the user has; each unnecessary sync can trigger a login prompt.
  3. AWS multi-account, if applicable. setup aws-sso enumerates every account reachable through an IAM Identity Center session and appends one kr-<account>-<role> profile per account. Needs a live session first — aws sso login --sso-session <name>, which the user runs. Pass --role deliberately: the default is AdministratorAccess when present, over-privileged for inspection. Pass --region if EKS lives outside the session's sso_region.
  4. Sync, one provider at a time. Sync is not transactional — a failure midway leaves a partial cache, so read each result before starting the next.
  5. Verify. target list, then inventory scopes for breadth. For AWS, expect one scope per account.

Reading the result

$ kuberoutectl doctor
CHECK                STATUS  DETAIL
provider:aws         ok      resolved at /usr/local/bin/aws
provider:gcp         ok      resolved at /opt/homebrew/bin/gcloud

$ kuberoutectl target list
ALIAS         PLATFORM  REGION        HEALTH  PROVIDER
cluster-test  gke       europe-west3  valid   gcp
  • doctorbinary resolution only. ok means the CLI was found, not that the user is logged in. A fully green doctor with no session yields an empty sync.
  • target listALIAS is a short handle but not unique across environments; see reference-resolution. Hidden targets are omitted unless you pass --all.
  • inventory scopes — one row per subscription / account / project. Empty scopes is the diagnostic: the identity sees no administrative boundary, which is an auth or permissions problem, not a kuberoutectl one.

To show exactly what a sync changed, diff the ids:

kuberoutectl target list -o json > /tmp/before.json
kuberoutectl sync gcp
kuberoutectl target list -o json > /tmp/after.json
diff <(jq -r '.[].id' /tmp/before.json | sort) <(jq -r '.[].id' /tmp/after.json | sort)

MCP tools

Prefer the tool; drop to the CLI only where none exists, and say so.

StepMCP toolFallback
List what was foundlist_targets
Confirm breadthlist_scopes, list_sources
Provider capabilitieslist_providers
Freshness of the cacheget_statussynced_at
Refreshsync_providerfull mode only; absent under --read-only
Prerequisitesno toolkuberoutectl doctor
AWS profile generationno toolkuberoutectl setup aws-sso
Cache cleanupwithheld on purposetarget delete / target clear, CLI only

Steps 1 and 3 are the CLI-only parts: doctor and setup aws-sso have no tool, so an MCP-only client cannot complete first-time setup and should say so rather than skipping the checks. Map: mcp-tools.

Fields

reading-output for field names, action_hint, and the freshness rule; selectors for grammar. id is the stable diff key — alias and name are not.

Safety

  • doctor, inventory *, target list, label list are Tier 1.
  • sync is Tier 2 — safe to re-run, never discards user labels, collections, or visibility. It may trigger the provider CLI's login; let the user complete it.
  • setup aws-sso writes ~/.aws/config, additive only: appends missing profiles, never modifies existing ones. Name the file and confirm first. It creates nothing in AWS itself.
  • target delete removes one target from the cache; a later sync re-adds it. No prompt, so confirm first. target clear removes all and prompts unless --yesnever pass --yes on the user's behalf.
  • Never ask the user to paste a token, key, or session value.

Common pitfalls

  • doctor all green, sync still empty. Not logged in — doctor does not test sessions.
  • AWS shows one account when the user has many. Missing ~/.aws/config profiles, step 3. The single most common cause of "it only found some of my clusters".
  • Profiles generated but still one scope. The SSO session expired between setup and sync. Re-login, re-sync.
  • Empty target list after a successful sync. Check inventory scopes first. No scopes = permissions boundary. Scopes but no targets = no clusters there, or the wrong region.
  • A re-created cluster loses its labels. Labels survive sync but attach to the target id; re-creating upstream mints a new id and the labels do not follow. Users mistake this for sync eating their labels.
  • Reporting health: unknown as broken. It usually means never observed.
  • target clear with no resync. Leaves an empty list and no explanation.

References

https://ymedlop.github.io/kuberoutectl/ · provider setup guides

Gives 0 of the 12 instructions most containers cloud skills give in ~1.8k tokens

Counted across 607 of the 657 authors here whose files we hold, read 2026-08-06

  • run containers as a non-root userin 69 of 607, across 49 files
  • use multi-stage buildsin 52 of 607, across 41 files
  • use Promise.all for independent operationsin 47 of 607, across 13 files
  • import directly instead of barrel filesin 46 of 607, across 12 files
  • use ternary instead of AND for conditionalsin 45 of 607, across 12 files
  • use Set or Map for O(1) lookupsin 42 of 607, across 10 files
  • create a .dockerignore filein 41 of 607, across 31 files
  • Read individual rule files for detailsin 39 of 607, across 9 files
  • authenticate server actions like API routesin 35 of 607, across 7 files
  • use next/dynamic for heavy componentsin 34 of 607, across 9 files
  • use React.cache for per-request deduplicationin 34 of 607, across 10 files
  • copy dependency files before source codein 34 of 607, across 21 files

Said here and by no other author read

  • run doctor to verify prerequisites
  • sync providers one at a time
  • read each sync result before starting the next
  • verify targets using target list
  • check inventory scopes for discovery breadth
  • pass a specific role to aws setup

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.