Inventory discovery
Skill ymedlop/kuberoutectl-skills/skills/inventory-discovery
Agent plugin providing skills and MCP server configurations for Kuberoutectl scenarios.
npx -y skills add ymedlop/kuberoutectl-skills --skill inventory-discoveryAssembled 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
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
kuberoutectlonPATH(install).- The provider's own CLI installed and logged in.
doctorchecks the first, not the second. - AWS across more than one account: profiles must exist in
~/.aws/configfirst — step 3. Without themsync awsfinds 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
- Prerequisites.
doctor. Anything notokis an install problem — resolve it via the matching provider guide. - Providers in scope. Ask, or infer from
doctor. Only sync clouds the user has; each unnecessary sync can trigger a login prompt. - AWS multi-account, if applicable.
setup aws-ssoenumerates every account reachable through an IAM Identity Center session and appends onekr-<account>-<role>profile per account. Needs a live session first —aws sso login --sso-session <name>, which the user runs. Pass--roledeliberately: the default isAdministratorAccesswhen present, over-privileged for inspection. Pass--regionif EKS lives outside the session'ssso_region. - 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.
- Verify.
target list, theninventory scopesfor 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
doctor— binary resolution only.okmeans the CLI was found, not that the user is logged in. A fully green doctor with no session yields an empty sync.target list—ALIASis a short handle but not unique across environments; seereference-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.
| Step | MCP tool | Fallback |
|---|---|---|
| List what was found | list_targets | — |
| Confirm breadth | list_scopes, list_sources | — |
| Provider capabilities | list_providers | — |
| Freshness of the cache | get_status → synced_at | — |
| Refresh | sync_provider | full mode only; absent under --read-only |
| Prerequisites | no tool | kuberoutectl doctor |
| AWS profile generation | no tool | kuberoutectl setup aws-sso |
| Cache cleanup | withheld on purpose | target 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 listare Tier 1.syncis 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-ssowrites~/.aws/config, additive only: appends missing profiles, never modifies existing ones. Name the file and confirm first. It creates nothing in AWS itself.target deleteremoves one target from the cache; a later sync re-adds it. No prompt, so confirm first.target clearremoves all and prompts unless--yes— never pass--yeson the user's behalf.- Never ask the user to paste a token, key, or session value.
Common pitfalls
doctorall green, sync still empty. Not logged in —doctordoes not test sessions.- AWS shows one account when the user has many. Missing
~/.aws/configprofiles, 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 listafter a successful sync. Checkinventory scopesfirst. 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: unknownas broken. It usually means never observed. target clearwith 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.