CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/i18n-string-coverage

Use when a product ships in several languages and untranslated text keeps slipping in. Scans code for user-facing strings not wrapped in the translation function, maps gaps to the translation files, reports coverage per language and fails PRs that add new untranslated strings.

Quality

87%

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

78%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 well-structured, largely executable guide with good progressive disclosure and a concrete worked example. Its weakest point is the PR-gate step, which depends on an unshipped and undefined `scripts/i18n-scan.sh` and never explains how "new" untranslated strings are detected against a baseline.

Suggestions

Ship or inline the contents of `scripts/i18n-scan.sh` referenced in Step 5, including how it identifies strings that are new in a PR (e.g., diffing scan output against the base branch or a committed baseline) rather than all unwrapped strings.

Promote the validate→fix→retry loop from the worked example into the Step 5 instructions as an explicit checkpoint sequence, so the gating workflow's error-recovery path is in the step list itself.

Trim known-concept explanation in Step 6 (the RTL language list and the bidi rendering rationale) to the flagging criteria and the W3C link.

DimensionReasoningScore

Conciseness

The body is dense and efficient — stack/tool tables, a compact Python script, and tight Limitations and Anti-patterns sections — with only minor over-explanation, e.g., listing RTL languages ("Arabic, Hebrew, Persian, Urdu") and explaining bidi rendering, both of which Claude already knows. It fits the efficient-with-minor-trims anchor; not 5 because of those few explainer sentences, not 3 because padding is incidental.

4 / 5

Actionability

Mostly executable guidance: a runnable grep, a complete copy-paste Python coverage script, and a concrete GitHub Actions gate snippet. The main gap is that Step 5 invokes `./scripts/i18n-scan.sh`, which is neither defined in the body nor shipped in the bundle, and how it distinguishes new untranslated strings from existing ones is unspecified. This fits concrete-code-with-minor-gaps rather than the fully copy-paste-ready top anchor.

4 / 5

Workflow Clarity

Steps 1–6 are clearly sequenced, summarized in "How to use", and tied together by a worked example that closes the loop (gate fails → wrap text → re-run → gate passes). The validate→fix→retry loop lives in the example rather than in the step sequence itself, and the gate's detection mechanics are underspecified, so it sits just below the explicit-checkpoints anchor.

4 / 5

Progressive Disclosure

The body is well-sectioned with a single one-level-deep reference — [references/coverage-report.md], verified to exist — clearly signaled at its point of use in Step 4, with the full report template appropriately split out of SKILL.md. Structure and navigation match the clear-overview anchor; there is no nested referencing or misplaceed inline content.

5 / 5

Total

17

/

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.

The description is strong: it states an explicit use-when trigger, four concrete capabilities spanning detection through enforcement, and a distinct niche within the i18n domain. The only improvement space is broader natural-synonym coverage (e.g., i18n, localization, locale) for trigger matching.

DimensionReasoningScore

Specificity

The description lists four concrete actions — "Scans code for user-facing strings not wrapped in the translation function, maps gaps to the translation files, reports coverage per language and fails PRs" — covering the complete detect→map→report→enforce pipeline. It matches the comprehensive multi-action anchor rather than the minor-gaps anchor below it.

5 / 5

Completeness

It explicitly answers "when" with a concrete trigger clause ("Use when a product ships in several languages and untranslated text keeps slipping in") and "what" with four specific actions. Both are explicit, matching the top anchor; the 4 anchor's weaker, less-specific "when" clause does not apply.

5 / 5

Trigger Term Quality

Natural phrases like "untranslated text", "several languages", "translation files", and "coverage per language" are terms users would actually say, but common synonyms such as "i18n", "localization", "locale", or "missing translations" are absent. Good coverage with a few natural terms missing fits the 4 anchor; it is not 5 because synonym-level coverage is missing, and not 3 because multiple natural phrases are present.

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche — untranslated-string coverage plus PR gating — with a compound trigger ("several languages" AND "untranslated text keeps slipping in") that distinguishes it from adjacent i18n skills like format validation or RTL rendering. Minimal conflict risk fits the 5 anchor; the 4 anchor's "minor overlap risk with closely related skills" is not clearly present in the description itself.

5 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

On this page