CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

kyverno

Generate, test, audit, debug, and migrate Kyverno policies using the new CEL-based policy types (ValidatingPolicy, MutatingPolicy, GeneratingPolicy, ImageValidatingPolicy — all apiVersion policies.kyverno.io/v1). Covers matchConstraints, matchConditions, CEL validations/mutations, generator.Apply(), Audit→Deny promotion, PolicyException, kyverno-cli testing, and migration from legacy ClusterPolicy or PodSecurityPolicy. Use when asked to "write a Kyverno policy", "test a ValidatingPolicy", "audit my cluster for violations", "why is my policy not firing", or "migrate from ClusterPolicy".

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

85%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 strong, highly actionable operator guide: concrete commands, executable CEL/YAML examples, and well-sequenced workflows with validation gates for the risky Audit→Deny promotion. Its one real defect is that every mode points to `references/kyverno.md`, which does not exist in the bundle, breaking the progressive-disclosure structure.

Suggestions

Create references/kyverno.md with the sections the body cites (ValidatingPolicy/MutatingPolicy/GeneratingPolicy/ImageValidatingPolicy, kyverno-cli Testing, Audit→Enforce Promotion, Troubleshooting, Common Policy Patterns), or remove the five 'Reference:' lines if the detail is meant to stay inline.

Tighten the kyverno-test.yaml template by collapsing the two near-identical result entries into a note that one entry is needed per resource/outcome pair, and move the kubescape cross-reference out of the wizard Q1 block.

Add a one-line failure path to test mode step 4 for when results don't match (e.g. re-check matchConditions exclusions and autogen rule names before editing fixtures).

DimensionReasoningScore

Conciseness

Mostly dense, actionable material (mapping tables, commands, checklists) with no beginner-concept padding, but minor trimmable fat: the kyverno-test.yaml template duplicates near-identical result entries, and the wizard Q1 block inlines kubescape cross-selling ("Score a cluster or manifests against NSA/CIS/SOC2..."). Fits anchor 4 ('efficient; minor instances that could be trimmed'); not 5 because a few blocks don't earn every token, not 3 because nothing is outright unnecessary explanation.

4 / 5

Actionability

Fully executable guidance throughout: copy-paste kubectl/jq pipelines, `kyverno apply <policy.yaml> --resource <manifest.yaml> --detailed-results`, a concrete `kubectl patch validatingpolicy ... -p '{"spec":{"validationActions":["Deny"]}}'` promote command, real CEL expressions in the PSP table, and a complete kyverno-test.yaml template. Matches anchor 5 ('copy-paste ready; specific examples cover the common cases'); not 4 because there are no gaps in the common paths.

5 / 5

Workflow Clarity

Each mode is a numbered sequence with explicit validation checkpoints: test mode requires "Run: `kyverno test .` — all results must match"; debug mode gives an ordered diagnostic checklist with specific kubectl commands; migration stages Audit→verify identical PolicyReport violations→Deny→remove legacy policy. The risky operation (promoting to Deny) is explicitly gated on zero violations, so no destructive/batch cap applies; not 4 because checkpoints and ordering are explicit in every mode.

5 / 5

Progressive Disclosure

The body is well-sectioned and each mode clearly signals a reference ("Reference: `references/kyverno.md` → Troubleshooting"), but the bundle contains no references/ directory at all — all five pointers target a nonexistent file, so the one-level-deep navigation promise is broken. Anchor 3 ('structure present but references not effectively usable'); not 4 because scoring against the actual bundle structure shows every reference is dangling, not 2 because the body itself is well-organized with prominently signaled references.

3 / 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 a model example: it states five concrete capabilities with named policy types and technical scope, and closes with an explicit 'Use when' clause containing natural trigger phrases for every mode, including a debug symptom phrasing. Voice is third-person imperative with no fluff or over-claims.

DimensionReasoningScore

Specificity

Lists five concrete actions ("Generate, test, audit, debug, and migrate Kyverno policies") plus the four named policy types and concrete technical scope ("matchConstraints, matchConditions, ... generator.Apply(), Audit→Deny promotion, PolicyException"). Comprehensive concrete coverage matching the anchor-5 example's breadth; not 4 because no meaningful capability is left vague.

5 / 5

Completeness

Explicitly answers what ("Generate, test, audit, debug, and migrate Kyverno policies using the new CEL-based policy types...") and when ("Use when asked to ...") with concrete trigger phrases. Exactly matches the anchor-5 pattern; not 4 because the 'when' clause is fully explicit rather than merely present.

5 / 5

Trigger Term Quality

Five quoted natural phrases cover every mode, including a symptom phrasing users actually say: "write a Kyverno policy", "test a ValidatingPolicy", "audit my cluster for violations", "why is my policy not firing", "migrate from ClusterPolicy". Coverage spans synonyms and symptom-level phrasings like the anchor-5 example; not 4 because no common natural phrasing is missing.

5 / 5

Distinctiveness Conflict Risk

Consistently scoped to Kyverno and its named policy kinds, with Kyverno-specific triggers unlikely to fire for other skills. Clear niche with minimal conflict risk per the anchor-5 example; not 4 because the domain naming leaves no meaningful overlap with adjacent Kubernetes tooling skills.

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

frontmatter_unknown_keys

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

Warning

referenced_paths_exist

Referenced path issues: 5 missing

Warning

Total

14

/

16

Passed

Repository

nitinjain999/platform-skills

Path

skills/kyverno/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.