CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/locale-format-validator

Use when a product shows dates, numbers, currencies, times or durations to users in several locales and needs proof each locale formats them correctly (5/4/2026 vs 04.05.2026, 1,234.56 vs 1.234,56, $ vs EUR placement).

Quality

79%

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

77%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 highly actionable, well-sequenced skill with executable tests, CI wiring, anti-patterns, and a worked example that demonstrates the full fail-to-fix loop. Its weaknesses are token efficiency (background explanations of locale ambiguity and CLDR, redundant table columns) and the absence of progressive disclosure — the per-locale expectation tables should live in a reference file rather than inline.

Suggestions

Move the Step 2-4 per-locale expectation tables to a references/ file (e.g., references/locale-expectations.md) and keep only one or two contrast examples inline, since the skill itself directs deriving expectations from CLDR rather than hand-coding them.

Cut the Overview's locale-ambiguity anecdotes and the 'what CLDR is' sentence in Step 8 — Claude already knows both; keep only the pointer to cldr.unicode.org as the source of truth.

Drop the redundant Medium/Long columns in the Step 2 table (identical for en-US, en-GB, fr-FR, zh-CN) or merge them into a single format column.

DimensionReasoningScore

Conciseness

The Overview re-explains cross-locale ambiguity Claude already knows ("US user sees `5/4/2026` and reads 'May 4.' Spanish user sees the same string and reads 'April 5.'"), Step 8 explains what CLDR is ("The Unicode Common Locale Data Repository (CLDR) is the canonical source for locale data"), and the Step 2 table has redundant Medium/Long columns that are identical for four of six locales. This matches 'mostly efficient but includes some unnecessary explanation or could be tightened'. Not 4 because these paddings are recurring, not minor instances.

3 / 5

Actionability

Fully executable, copy-paste-ready guidance: complete Playwright tests asserting exact strings per locale ("await expect(page.getByTestId('order-date')).toHaveText('04.05.2026')"), a CI loop ("for locale in en-US en-GB de-DE ...; do LOCALE=$locale npx playwright test e2e/locale-formats/"), a per-stack library table, an anti-pattern table with fixes, and a worked example covering the common cases. Nothing is pseudocode or abstract.

5 / 5

Workflow Clarity

The 'How to use' section sequences six steps with explicit cross-references to Steps 1-8, tests serve as explicit validation checkpoints ("Run the tests across the full locale matrix in CI"), and error recovery is specified ("Trace any failure back to CLDR conventions, not hand-coded assumptions"), reinforced by the Worked example's fail-diagnose-fix loop. Not 4 because validation and the feedback loop are explicit, not merely present with minor gaps.

5 / 5

Progressive Disclosure

Sections are well-organized, but at ~208 lines the skill inlines three per-locale data tables (Steps 2-4) that are exactly the material a references/ file should hold — especially since the skill itself says "the actual expected strings should be derived from CLDR per locale, not hand-coded", which makes the inline tables partially redundant. There are no bundle files at all, so everything lives in SKILL.md, matching 'some structure but content that should be separate is inline'. Not 4 because the locale-expectation tables are a substantial block of reference-grade data, not a minor placement gap.

3 / 5

Total

16

/

20

Passed

Description

70%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, trigger-first description with concrete format-contrast examples that make the niche immediately recognizable. Its main weakness is that the capability ('what') is folded into the 'Use when' clause instead of being stated explicitly, and it lacks the i18n/localization synonyms users commonly invoke.

Suggestions

Lead with an explicit capability statement in third person (e.g., 'Verifies that dates, numbers, currencies, times and durations render correctly per locale by authoring per-locale format tests') before the 'Use when' clause.

Add natural trigger synonyms such as 'localization', 'i18n', 'l10n', or 'locale-specific formatting' to broaden keyword coverage.

Mention the concrete deliverables (per-locale test assertions, CI locale matrix) so the 'what' is explicit rather than implied by 'needs proof'.

DimensionReasoningScore

Specificity

The description names one concrete capability — "needs proof each locale formats them correctly" — anchored by concrete examples ("5/4/2026 vs 04.05.2026, 1,234.56 vs 1.234,56, $ vs EUR placement"), but the parenthetical examples illustrate the problem space rather than enumerate actions, matching 'names domain and 1-2 concrete actions, but not comprehensive'. Not 4 because it does not list several distinct actions (e.g., authoring tests, running a locale matrix in CI, tracing failures to CLDR).

3 / 5

Completeness

The 'when' is explicit and specific ("Use when a product shows dates, numbers, currencies, times or durations to users in several locales"), and the 'what' is present but embedded inside the trigger clause ("needs proof each locale formats them correctly") rather than stated as a distinct capability. Not 5 because there is no explicit leading statement of what the skill does (e.g., 'Validates locale formatting by authoring per-locale tests'); not 3 because the 'when' is fully explicit, not weakly implied.

4 / 5

Trigger Term Quality

Good natural keyword coverage: "dates, numbers, currencies, times or durations", "locales", "formats" — terms a user reporting a bug would plausibly say. Not 5 because common synonyms a user or model would naturally use are missing, such as "i18n", "l10n", "localization", "internationalization", or "locale-specific".

4 / 5

Distinctiveness Conflict Risk

The niche is clear and the concrete contrast examples ("5/4/2026 vs 04.05.2026", "$ vs EUR placement") distinguish it from generic i18n skills. Not 5 because there is minor overlap risk with adjacent l10n testing skills (translation coverage, RTL rendering, pseudo-localization) — a request like 'check our localization' could plausibly match several of them.

4 / 5

Total

15

/

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