CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

debug-rbac

Diagnose OpenShift RBAC permission failures that cause workloads to fail with 403 Forbidden errors when accessing the Kubernetes API. Automates multi-step diagnosis: pod logs for FORBIDDEN errors, readiness probe failures, ServiceAccount identification, RoleBinding/ClusterRoleBinding analysis, and remediation history for regression detection. Use when: - "403 forbidden when accessing Kubernetes API" - "ServiceAccount permission denied" - "pods can't list resources" - "missing RoleBinding" - User mentions "RBAC denied", "403 forbidden", "permission denied" NOT for SCC admission failures (use /debug-scc instead).

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

81%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a highly actionable, well-sequenced diagnostic runbook with strong validation and human-in-the-loop checkpoints. Its main weaknesses are token efficiency (duplicated tool listings and trigger guidance, ~430 lines where ~250 would do) and minor organization gaps (an unreferenced bundle file, all output templates inlined).

Suggestions

Collapse the duplicated MCP tool listings into one section — the Prerequisites and Dependencies sections list the same five tools with nearly identical descriptions; keep one and link to it.

Remove the inlined Kubernetes naming-rule detail ("lowercase alphanumeric and hyphens, 1-253 chars, RFC 1123") — Claude already knows K8s naming rules; a one-line 'validate names against K8s conventions' suffices.

Move the per-step 'Present to user' markdown templates into a references file (e.g., references/output-templates.md) and remove or repurpose the unreferenced references/selinux-troubleshooting.md, keeping SKILL.md as a lean overview.

DimensionReasoningScore

Conciseness

The body is dense and operational with little conceptual padding, but the full MCP tool list is duplicated verbatim in Prerequisites and Dependencies, "When to Use This Skill" restates the frontmatter triggers, and the RFC 1123 naming-rules aside explains knowledge Claude already has. It fits "mostly efficient but could be tightened"; it is not 2 because nearly all content is actionable runbook material rather than unnecessary explanation.

3 / 5

Actionability

Guidance is fully executable: exact MCP tool parameters (e.g., `tailLines: 50`), copy-paste-ready `oc create role`/`oc create rolebinding` remediation commands, and `oc auth can-i` post-fix verification commands covering the common case. It is not 4 because commands and parameters are complete and specific throughout.

5 / 5

Workflow Clarity

The five-step workflow has a sequence diagram, per-step tool/parameter/expected-output/error-handling structure, explicit WAIT checkpoints, feedback loops (e.g., re-request logs with increased tailLines when FORBIDDEN messages are ambiguous), and human confirmation plus post-fix verification before/after creating RBAC resources. The destructive-operation cap does not apply since validation is explicit.

5 / 5

Progressive Disclosure

References (references/prerequisites.md, references/debugging-patterns.md) are clearly signaled one level deep and exist in the bundle, but the ~430-line body inlines all presentation templates that could be split out, and references/selinux-troubleshooting.md sits in the bundle unreferenced (it is irrelevant to RBAC). This fits "good structure with minor organization gaps"; it is not 5 because content is not appropriately split and one bundle file is orphaned.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is exemplary: it states concrete capabilities comprehensively, provides explicit and natural trigger phrases with synonym coverage, answers both what and when, and explicitly delineates its boundary against the sibling /debug-scc skill. No changes needed.

DimensionReasoningScore

Specificity

The description lists five concrete diagnostic actions ("pod logs for FORBIDDEN errors, readiness probe failures, ServiceAccount identification, RoleBinding/ClusterRoleBinding analysis, and remediation history for regression detection") with comprehensive coverage of the diagnosis pipeline. It is not 4 because no meaningful capability gap remains in the action list.

5 / 5

Completeness

It explicitly answers both "what" (multi-step RBAC diagnosis with named analysis steps) and "when" (a dedicated "Use when:" list with quoted trigger phrases), plus an explicit "NOT for" exclusion. This directly matches the anchor for clearly and explicitly answering both with concrete trigger phrases.

5 / 5

Trigger Term Quality

Trigger terms include natural user phrasings with synonym coverage: "403 forbidden when accessing Kubernetes API", "ServiceAccount permission denied", "pods can't list resources", "missing RoleBinding", "RBAC denied". It is not 4 because the dominant phrasings a user would actually say (forbidden/denied/permission denied variants plus concrete scenarios) are all present.

5 / 5

Distinctiveness Conflict Risk

OpenShift RBAC 403 diagnosis is a clear niche with K8s-specific triggers (RoleBinding, ServiceAccount, pods can't list resources) and an explicit boundary: "NOT for SCC admission failures (use /debug-scc instead)". The generic "permission denied" phrase carries minor overlap risk, but it is anchored to the Kubernetes API context, keeping this at 5 rather than 4.

5 / 5

Total

20

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository

RHEcosystemAppEng/agentic-plugins

Path

rh-developer/skills/debug-rbac/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.