CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/openfeature-sdk-testing

Wraps OpenFeature (CNCF vendor-neutral SDK abstraction) testing patterns: the InMemoryProvider for hermetic tests without network calls, provider registration via OpenFeature.setProvider, the getBooleanValue/getBooleanDetails evaluation API with EvaluationDetails (value, variant, reason, errorCode), hooks for evaluation side-effects, and evaluation context for targeting-rule tests. Covers TypeScript, Java, and Python SDKs, plus per-vendor hermetic-bootstrap references for Unleash (bootstrap toggles), Flagsmith (offline LocalFileHandler), and GrowthBook (initSync payload). Use when writing tests for code that resolves feature flags through the OpenFeature SDK or the Unleash / Flagsmith / GrowthBook native SDKs; LaunchDarkly has its own skill (launchdarkly-testing).

75

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

86%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-structured, highly actionable reference skill: executable TypeScript examples cover the common test cases, vendor and multi-language detail is correctly offloaded to real one-level-deep reference files, and the anti-patterns table doubles as a failure-mode checklist. The only costs are minor token duplication (repeated flag config and repeated links) and topical rather than strictly checkpointed workflow organization.

Suggestions

Deduplicate the flag-config object: have the typical test pattern reference the configuration shown in the Configure section (or keep only the test-pattern copy) instead of repeating the full 'checkout-v2' variants block twice.

Trim the References section to files not already linked inline (the four openfeature.dev and SDK README URLs duplicated from the body), or drop the inline citations and keep them only in References.

DimensionReasoningScore

Conciseness

The body is largely lean (spec quotes like 'an application integrator can register one provider at a time' add precision rather than padding), but the checkout-v2 flag-config object is duplicated between the configure example and the test pattern's beforeAll, and the References section repeats four URLs already cited inline. This matches 'efficient; minor instances that could be trimmed' — it is above anchor 3 because there is no over-explanation of concepts Claude already knows.

4 / 5

Actionability

Fully executable throughout: 'npm install --save @openfeature/server-sdk', a complete InMemoryProvider config, the typed evaluate calls with expected values in comments, and a copy-paste-ready describe/beforeAll/afterAll test pattern whose three tests cover the common cases (default value, reason STATIC, FLAG_NOT_FOUND). Matches the top anchor; anchor 4's 'minor gaps' fits worse since the examples run as written.

5 / 5

Workflow Clarity

The Install → Configure → Evaluate sequence is clearly ordered, the test pattern includes setup/teardown checkpoints ('afterAll(() => OpenFeature.close())'), and the anti-patterns table gives a why-it-fails/fix pair for each failure mode (e.g., PROVIDER_NOT_READY → 'Always await provider readiness'). It sits at anchor 4 rather than 5 because guidance is organized as topical sections rather than an explicitly checkpointed workflow with error-recovery ordering.

4 / 5

Progressive Disclosure

The Scope section maps each bundle file to its content ('references/unleash.md (bootstrap toggles + custom strategies)', flagsmith.md, growthbook.md), multi-language-and-spec.md is linked at each point where its content applies, all five referenced files exist, and grep confirms no nested references (one level deep). Matches the clear-overview anchor; only a minor signal gap exists (flagsmith-modes.md appears only as a parenthetical in References), which is not enough to drop to anchor 4's 'minor organization gaps'.

5 / 5

Total

18

/

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 strong example: dense with named APIs and concrete capabilities, an explicit 'Use when' trigger clause covering both the OpenFeature and vendor-native paths, and explicit boundary guidance against the LaunchDarkly sibling skill. All four dimensions land at the top anchor.

DimensionReasoningScore

Specificity

Lists five concrete actions with named APIs: 'the InMemoryProvider for hermetic tests without network calls, provider registration via OpenFeature.setProvider, the getBooleanValue/getBooleanDetails evaluation API with EvaluationDetails (value, variant, reason, errorCode), hooks for evaluation side-effects, and evaluation context for targeting-rule tests'. Coverage is comprehensive for the domain, matching the top anchor; it is above anchor 4 because no capability area of the skill is left unlisted.

5 / 5

Completeness

Explicitly answers 'what' (the enumerated testing patterns and SDK coverage) and 'when' via a concrete 'Use when writing tests for code that resolves feature flags through the OpenFeature SDK or the Unleash / Flagsmith / GrowthBook native SDKs' clause. This is the anchor-5 pattern of both what and when with concrete trigger phrases; it cannot be 4 because the 'when' is fully explicit rather than improvable.

5 / 5

Trigger Term Quality

Natural trigger phrases a user would say are all present: 'feature flags', 'OpenFeature', 'writing tests', plus the vendor names 'Unleash / Flagsmith / GrowthBook' (repeated for both the OpenFeature and native-SDK paths). This matches the comprehensive-coverage anchor; the one-level-below anchor ('a few natural terms missing') fits worse since both the abstraction-layer and vendor-native phrasings of the need are covered.

5 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (OpenFeature SDK testing plus three named vendors) and actively disambiguates the closest conflict: 'LaunchDarkly has its own skill (launchdarkly-testing)'. Minimal conflict risk, matching the clear-niche anchor; it exceeds anchor 4 because the main overlap risk with a sibling skill is addressed head-on rather than merely minor.

5 / 5

Total

20

/

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

Table of Contents