agentsclimarketplace

Access triage

Skill ymedlop/kuberoutectl-skills/skills/access-triage

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

Install
npx -y skills add ymedlop/kuberoutectl-skills --skill access-triage

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

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

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

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

  • kuberoutectl on PATH.
  • The user can name the cluster, or at least the provider. If not, resolve the reference via target-selection first.

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

  1. Baseline. version, current, doctor — which binary, what is selected, how stale, whether provider CLIs resolve. Not ok in doctor is an install problem; stop there.

  2. Freshness. Last sync from current. Older than ~a day makes everything below a hypothesis: note it, continue, re-sync before delivering a verdict.

  3. The target's view. target inspect <ref>Health, Action, Credential. Action routes:

    ActionMeaningGo to
    useidentity is finestep 6 — not an identity problem
    renewexpired, re-authenticablestep 5
    manualcannot re-auth from herestep 5
  4. The identity behind it. credential show <credential-id>, taking the id from the Credential line. That field is the join from "cluster unreachable" to "identity expired".

  5. Can this provider renew? inventory providersRENEW. no means renew cannot succeed; the fix is at the source (provider login, AWS profile, kubeconfig file) — name that source. yes plus action_hint: renew is the only case where offering renew is correct.

  6. 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.

  7. 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 is aws sso login, not credential renew. The identity key is absent from the JSON, not empty; code testing identity == "" 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.

StepMCP toolFallback
1 — selection + freshnessget_status
1 — versioninitializeserverInfo.versionkuberoutectl version
1 — prerequisitesno toolkuberoutectl doctor
3 — the target's viewget_target
4 — the identitylist_credentials, filter on the idcredential show <id>
5 — can this provider renewlist_providerscan_renew
5 — renewwithheld on purposecredential renew, CLI only
6 — cluster missinglist_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 renew is Tier 4: it re-authenticates a real identity and may open a browser. Confirm first, and never run it when RENEW is no.
  • 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 renew first. Most disruptive step, and wrong for manual and for RENEW no providers. It is step 5.
  • Calling unknown broken. It usually means never observed.
  • Renewing the wrong identity. One provider holds many credentials — take the id from the affected target's Credential line.
  • Diagnosing on stale data. Check Last sync first.
  • Blaming kuberoutectl for a permissions boundary. Empty inventory scopes is 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

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

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.

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.