Access triage
Agent plugin providing skills and MCP server configurations for Kuberoutectl scenarios.
npx -y skills add ymedlop/kuberoutectl-skills --skill access-triageAssembled 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
Diagnose why Kubernetes access is not working, and check credential health. Handles prompts like 'kubectl says unauthorized', 'I cannot reach this cluster', 'my login expired', 'a cluster disappeared from the list', 'what version am I on'. USE FOR: baseline status (version, current selection, cache freshness, doctor), credential health and action hints, renewing an expired identity, telling a permissions boundary from a deleted cluster. DO NOT USE FOR: first-time provider setup (use inventory-discovery), or choosing which cluster to switch to (use target-selection).
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.3 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Access triage
Use this when access is not working — kubectl errors, target use fails, a
cluster is missing, a login expired — or when you need baseline facts (version,
selection, freshness, prerequisites) before diagnosing anything.
Four causes look identical from outside: a missing prerequisite, an expired or never-established identity, a stale cache, or a cluster that is genuinely gone. The step order separates them cheapest-first.
Preconditions
kuberoutectlonPATH.- The user can name the cluster, or at least the provider. If not, resolve the
reference via
target-selectionfirst.
Commands
# read-only
kuberoutectl version
kuberoutectl current
kuberoutectl doctor
kuberoutectl target inspect <alias|id|name>
kuberoutectl credential list
kuberoutectl credential list --provider azure
kuberoutectl credential show <id>
kuberoutectl inventory providers
kuberoutectl inventory scopes
# Tier 4 — re-authenticates a real identity, may open a browser. Confirm first.
kuberoutectl credential renew <id>
Steps
-
Baseline.
version,current,doctor— which binary, what is selected, how stale, whether provider CLIs resolve. Notokindoctoris an install problem; stop there. -
Freshness.
Last syncfromcurrent. Older than ~a day makes everything below a hypothesis: note it, continue, re-sync before delivering a verdict. -
The target's view.
target inspect <ref>→Health,Action,Credential.Actionroutes:ActionMeaning Go to useidentity is fine step 6 — not an identity problem renewexpired, re-authenticable step 5 manualcannot re-auth from here step 5 -
The identity behind it.
credential show <credential-id>, taking the id from theCredentialline. That field is the join from "cluster unreachable" to "identity expired". -
Can this provider renew?
inventory providers→RENEW.nomeans renew cannot succeed; the fix is at the source (provider login, AWS profile, kubeconfig file) — name that source.yesplusaction_hint: renewis the only case where offering renew is correct. -
Cluster missing?
inventory scopes. No scopes = the identity sees no subscription / account / project, an auth or permissions boundary. Scopes present but target absent = deleted upstream, or this identity lost visibility. -
Identity fine, still unreachable. kuberoutectl has told you all it knows; what remains is network, RBAC, or control plane. Say you have moved past the brokering layer, then
kubectl cluster-info/kubectl auth can-i get pods.
Reading the result
$ kuberoutectl credential list
ID PROVIDER IDENTITY HEALTH ACTION
gcp:account:[email protected] gcp [email protected] valid use
aws:default aws unknown manual
Two different situations:
valid/use— ready. If a cluster on this provider is unreachable, the cause is not this credential. Go to step 7.unknown/manual/ no identity — no session was ever established. Fix isaws sso login, notcredential renew. Theidentitykey is absent from the JSON, not empty; code testingidentity == ""misses it.
$ kuberoutectl inventory providers
PROVIDER RENEW REAUTH SCOPES SWITCH STATIC
aws yes yes yes yes yes
kubeconfig no no yes yes yes
RENEW no — static credentials must be replaced at the file; renewal is impossible.
version prints 1.0.0 for a release (no leading v) or 0.0.0-snapshot-<sha>
for a development build. A snapshot is not an outdated release.
MCP tools
Prefer the tool; drop to the CLI only where none exists, and say so.
| Step | MCP tool | Fallback |
|---|---|---|
| 1 — selection + freshness | get_status | — |
| 1 — version | initialize → serverInfo.version | kuberoutectl version |
| 1 — prerequisites | no tool | kuberoutectl doctor |
| 3 — the target's view | get_target | — |
| 4 — the identity | list_credentials, filter on the id | credential show <id> |
| 5 — can this provider renew | list_providers → can_renew | — |
| 5 — renew | withheld on purpose | credential renew, CLI only |
| 6 — cluster missing | list_scopes | — |
The whole read path works under --read-only. credential renew has no tool in
either mode — the guardrail, not a gap: the one step that re-authenticates a real
identity stays a deliberate CLI action. doctor is a genuine gap, so an MCP-only
client cannot rule out a missing provider binary — report that as a gap in your
evidence rather than skipping step 1. Map:
mcp-tools.
Fields
action_hint table, health semantics, freshness rule:
reading-output.
target.credential_id → credential.id which identity reaches this cluster
target.scope_id → scope.id which account/project it lives in
Safety
- Steps 1–4, 6, 7 are Tier 1.
credential renewis Tier 4: it re-authenticates a real identity and may open a browser. Confirm first, and never run it whenRENEWisno.- kuberoutectl stores no secrets. Never ask the user to paste a token or password.
- Separate facts from interpretation. "Last sync was 3 days ago, so this health may be stale" is a fact about your evidence — say it rather than asserting a conclusion you cannot support.
Common pitfalls
- Running
renewfirst. Most disruptive step, and wrong formanualand forRENEW noproviders. It is step 5. - Calling
unknownbroken. It usually means never observed. - Renewing the wrong identity. One provider holds many credentials — take the id
from the affected target's
Credentialline. - Diagnosing on stale data. Check
Last syncfirst. - Blaming kuberoutectl for a permissions boundary. Empty
inventory scopesis the cloud saying no. - Stopping at "identity is valid". That is a finding: the problem is downstream. Say so and hand off rather than looping.
- Reporting a snapshot build as outdated.
References
Gives 0 of the 12 instructions most debug triage skills give in ~1.7k tokens
Counted across 839 of the 1,149 authors here whose files we hold, read 2026-08-06
- investigate root cause before proposing any fixin 102 of 839, across 65 files
- read error messages completelyin 90 of 839, across 48 files
- create a failing test case before fixingin 84 of 839, across 44 files
- reproduce the issue consistentlyin 82 of 839, across 40 files
- change one variable at a timein 82 of 839, across 42 files
- check recent changesin 74 of 839, across 35 files
- write the regression test before fixingin 74 of 839, across 36 files
- fix the root cause not the symptomin 60 of 839, across 43 files
- implement a single fix at a timein 59 of 839, across 20 files
- trace data flow backward to the sourcein 50 of 839, across 20 files
- remove all debug instrumentationin 49 of 839, across 13 files
- form a single hypothesisin 48 of 839, across 18 files
Said here and by no other author read
- check last sync freshness before diagnosing
- run version current and doctor for baseline
- stop if doctor is not ok
- inspect the target to route the action
- show the credential for the affected target
- check if provider supports renew before offering
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.