CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/keycloak-tests

Use whenever an app uses self-hosted Keycloak and needs integration tests: a throwaway Keycloak per test class via Testcontainers, realm JSON imports, OIDC discovery, token and introspection endpoints, the admin REST API, password, auth-code, client-credentials and token-exchange flows, and UMA.

Quality

94%

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

Overview
Quality
Evals
Security
Files

Quality

Content

92%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.

A well-engineered skill body: every step carries executable code or a precise command, validation and error-recovery guidance are built in, and heavy per-flow recipes are correctly pushed to one-level-deep reference files that genuinely exist. The only deduction is minor: two small asides re-explain concepts (Keycloak realm/client definitions, Python context-manager behavior) that Claude already knows. The anti-patterns table and troubleshooting notes add disproportionate value for their token cost.

Suggestions

Trim the 'A realm holds users, credentials, roles and groups; a client is an application that asks Keycloak to authenticate users' sentence — Claude already knows Keycloak's object model, and the fixture-editing steps stand without it.

Drop the 'the context manager starts and stops the container' comment from the Step 1 fixture; the with/yield pattern is self-explanatory to Claude.

DimensionReasoningScore

Conciseness

The body is dense and actionable with no padded sections, but two spots explain concepts Claude already knows: 'A realm holds users, credentials, roles and groups; a client is an application that asks Keycloak to authenticate users' and the code comment 'the context manager starts and stops the container'. These are exactly anchor 4's 'minor instances of over-explanation that could be trimmed' rather than anchor 5's 'every token earns its place', though they are far below anchor 3's broader inefficiency.

4 / 5

Actionability

The body provides copy-paste-ready artifacts: the session-scoped KeycloakContainer fixture, the jq realm-sanitisation command, the realm-check fixture asserting against the discovery document, a complete client-credentials test, and CI YAML; both referenced recipe files contain fully executable test functions for PKCE, token exchange, UMA, introspection, and admin API. This matches the 5 anchor (fully executable, specific examples cover the common cases).

5 / 5

Workflow Clarity

Eight clearly sequenced steps include an explicit validation checkpoint ('Before any flow test, assert the started server serves the imported realm') with a feedback loop for error recovery ('If it fails: check the container log for the import line... Fix the fixture, not the paths'), plus a pre-commit grep check for leaked secrets in Step 2. This matches the 5 anchor's explicit validation steps and error-recovery guidance, not 4's 'minor validation gaps'.

5 / 5

Progressive Disclosure

The core workflow (container, fixture, discovery check, basic grants, CI) stays in SKILL.md while flow-level detail is split into references/endpoint-recipes.md and references/flow-recipes.md — both real files, one level deep, each clearly signaled at the step where it is needed ('Each of these has a recipe in references/flow-recipes.md'). Structure matches the 5 anchor (clear overview, well-signaled one-level-deep references, appropriate split).

5 / 5

Total

19

/

20

Passed

Description

92%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.

A strong description: it opens with an explicit trigger clause ('Use whenever an app uses self-hosted Keycloak and needs integration tests') and then comprehensively enumerates the skill's concrete capabilities rather than settling for vague domain language. Its only weakness is modest synonym coverage — users saying 'SSO', 'identity provider', or 'login tests' would not lexically match. Third-person/trigger conventions are followed and there is no fluff or over-claiming.

DimensionReasoningScore

Specificity

The description enumerates concrete capabilities: 'a throwaway Keycloak per test class via Testcontainers, realm JSON imports, OIDC discovery, token and introspection endpoints, the admin REST API, password, auth-code, client-credentials and token-exchange flows, and UMA'. This covers every major capability of the skill's eight steps with no material gaps, matching the 5 anchor (multiple specific concrete actions, comprehensive coverage) rather than 4's 'minor gaps in coverage'.

5 / 5

Completeness

'Use whenever an app uses self-hosted Keycloak and needs integration tests' is an explicit when-clause with a concrete trigger, and the colon-separated list comprehensively answers what the skill does. This clearly matches the 5 anchor (both what AND when with concrete trigger phrases), not 4 where the 'when' could be more explicit.

5 / 5

Trigger Term Quality

'Keycloak', 'self-hosted Keycloak', 'integration tests', 'Testcontainers', 'OIDC', and 'token exchange' are terms a user would naturally say when needing this skill, giving good keyword coverage. However, common variations such as 'identity provider', 'SSO', or 'login' are absent, so it falls between the 4 anchor ('a few natural terms missing') and the 5 anchor's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

'self-hosted Keycloak' names a specific identity provider deployment, giving a clear niche with distinct triggers that would not fire for sibling skills like auth0-tests or okta-tests or for generic OAuth work. This matches the 5 anchor (clear niche, minimal conflict risk).

5 / 5

Total

19

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

On this page